如何在孪生神经网络中获取值 0 或 1?

how to get value 0 or 1 in siamese neural network?

我正在尝试使用连体神经网络。 这里我想比较2种类型的图像并得到分数的结果, 这是测试模型产生分数的代码

在这种情况下我使用 pytorch

model = Siamese()

# Load state_dict
model.load_state_dict(torch.load('/Users/tania/Desktop/TA/model/model-batch-1001.pth'))

# Create the preprocessing transformation
from torchvision import transforms
transforms = transforms.ToTensor()

# load image(s)
from PIL import Image
x1 = Image.open('table.PNG')
x2 = Image.open('table.PNG')
# Transform

x1 = transforms(x1)
x2 = transforms(x2)

x1 = torch.stack([x1])
x2 = torch.stack([x2])

model.eval()

# Get prediction
output = model(x1,x2)
print (output)

所以我得到了这样的分数,

分数是-14.1640

基本上在暹罗语中,如果图像相同则生成值 1,如果不同则生成值 0

如何获取 0 或 1 的值,以便我知道图像是否相同?

请帮助我,我是神经网络的新手

要获得介于 0 和 1 之间的输出,您需要使用激活函数转换您的值,以便将它们映射到概率。这可以通过 Sigmoid 函数来完成,定义为:

它returns 范围为 (0,1)(不包括)的概率,其中值 0 < y < 0.5 可以解释为负标签,而值 0.5 <= y < 1 可以解释作为积极的。在 PyTorch 中,可以这样实现:

output = model(x1,x2)
output = torch.sigmoid(output)

希望对您有所帮助!