如何在 PyTorch 中实现孪生神经网络?
什么是孪生神经网络?孪生神经网络由两个相同的神经网络组成,每个神经网络接受一个输入。相同意味着两个神经网络具有完全相同的架构并共享相同的权重。
在 PyTorch 中实现孪生神经网络就像在不同输入上调用网络函数两次一样简单。
mynet = torch.nn.Sequential(
nn.Linear(10, 512),
nn.ReLU(),
nn.Linear(512, 2))
...
output1 = mynet(input1)
output2 = mynet(input2)
...
loss.backward()
Run Code Online (Sandbox Code Playgroud)
调用时loss.backwad(),PyTorch 将自动求和来自 的两次调用的梯度mynet。
您可以在此处找到完整的示例。