Deep learning PyTorch查找关键点:输出节点在一个范围内,负损耗

Deep learning PyTorch查找关键点:输出节点在一个范围内,负损耗,deep-learning,pytorch,cnn,Deep Learning,Pytorch,Cnn,我是深度学习的初学者。 我正在使用它,我希望我的网络能够检测手的关键点 如何使输出层的节点位于范围[-1,1](标准化2D点的范围)内? 另一个问题是,当我训练超过1个历元时,损失得到负值 标准:torch.nn.MultiLabelSoftMarginLoss()和优化器:torch.optim.SGD() 你可以找到我的回购协议 net = nnModel.Net() net = net.to(device) criterion = nn.MultiLabelSoftMarginLoss()

我是深度学习的初学者。 我正在使用它,我希望我的网络能够检测手的关键点

如何使输出层的节点位于范围[-1,1](标准化2D点的范围)内? 另一个问题是,当我训练超过1个历元时,损失得到负值

标准:torch.nn.MultiLabelSoftMarginLoss()和优化器:torch.optim.SGD()

你可以找到我的回购协议

net = nnModel.Net()
net = net.to(device)
criterion = nn.MultiLabelSoftMarginLoss()
optimizer = optim.SGD(net.parameters(), lr=learning_rate)
lr_scheduler = torch.optim.lr_scheduler.ExponentialLR(optimizer=optimizer, gamma=decay_rate)

我能想到的一种方法是使用
torch.nn.Sigmoid
,它产生[0,1]范围内的输出,并使用
2*x-1
转换将输出缩放到[-1,1]。

我能想到的一种方法是使用
torch.nn.Sigmoid
,它产生[0,1]范围内的输出,并将输出缩放到[-1,1]使用
2*x-1
转换。

您可以使用激活函数,因为函数的映像位于[-1,1]

预测图像中关键点的问题更多的是回归问题,而不是分类问题(特别是当您使模型输出+目标落在连续间隔内时)。因此,我建议您使用

事实上,对于您来说,使用交叉验证来确定适合回归问题的损失函数提供了最低的预期泛化误差可能是一个很好的练习。PyTorch中有几个这样的函数。

您可以使用激活函数,因为函数的映像位于[-1,1]

预测图像中关键点的问题更多的是回归问题,而不是分类问题(特别是当您使模型输出+目标落在连续间隔内时)。因此,我建议您使用

事实上,对于您来说,使用交叉验证来确定适合回归问题的损失函数提供了最低的预期泛化误差可能是一个很好的练习。PyTorch中有几个这样的功能