首页 > 解决方案 > PyTorch 找到关键点:输出节点在一个范围内和负损失

问题描述

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

如何使输出层的节点在 [-1, 1] 范围内(标准化 2D 点的范围)?另一个问题是,当我训练超过 1 个 epoch 时,损失会变为负值

标准: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)

标签: deep-learningpytorchconv-neural-network

解决方案


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


推荐阅读