FNN 模型错误:RuntimeError:张量 a (N) 的大小必须与非单例维度 0 处张量 b (M) 的大小匹配

Error with FNN model: RuntimeError: The size of tensor a (N) must match the size of tensor b (M) at non-singleton dimension 0

提问人:rashid 提问时间:12/30/2022 最后编辑:rashid 更新时间:12/30/2022 访问量:48

问:

我在 PyTorch 中为线性回归问题训练了 FNN 模型,保存了该模型,现在尝试通过使用 torch.no_grad():来检查我的模型性能。Y_test大小为 [64000 2],X_Test大小为 [64000 2]。Batch_size = 100。我正在尝试检查我的模型的准确性,每次都归零。无法理解问题。


X_Test = torch.tensor(PA_DATA[:64000,0:2], dtype=torch.float32)
#output
Y_Test =torch.tensor(PA_DATA[:64000,2:4], dtype=torch.float32)
test_dataset = Data.TensorDataset(X_Test, Y_Test)
testloader = DataLoader(test_dataset, batch_size=100, shuffle=False)

loss_func1 = torch.nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.0001)


running_accuracy = 0.0 
running_test_loss = 0.0 
total = 0
with torch.no_grad():
    model.eval()
    for X_Test,T_Val in testloader:
        
        pred = model(X_Test)
        test_loss = loss_func1(pred,Y_Test)
        _, predicted = torch.max(pred.data, 1) 
        running_test_loss += test_loss.item()
        total += Y_Test.size(0)
        running_accuracy += (predicted == Y_Test).sum().item() 
        Test_loss_value = running_test_loss/len(testloader)
        accuracy = (100 * running_accuracy / total) 
        print(accuracy)

有时它显示大小为 a (100) 的误差张量与张量大小 b(2) 不匹配。我尝试了各种方法,但无法计算准确性。

精度 = 0.0
测试损失: 0.001215781958308071

RuntimeError: The size of tensor a (100) must match the size of tensor b (64000) at non-singleton dimension 0
测试 PyTorch 神经网络 浮动精度 前馈

评论

0赞 kmkurn 12/30/2022
你能把完整的回溯添加到问题中吗?这将有助于找出错误的来源。
0赞 rashid 12/31/2022
实际上,我正在实现线性回归模型,该模型具有连续输出(即像范围一样)。例如,我需要设置一些阈值,例如设置 beta = 0.05,然后对每个数据集进行循环,对于每个预测输出用想要的输出做减法,如果结果小于 beta,则设置 counter = counter+1,然后将计数器除以总数据集的数量,即准确性。我如何在测试模型中实现这一点。因为预测值是浮点数,这就是为什么我得到零准确性的原因。
0赞 kmkurn 12/31/2022
这听起来像是一个完全不同的问题。您应该考虑将其作为单独的问题发布,如果您不再对它感兴趣,可以删除此问题。

答: 暂无答案