如何修复AttributeError:'torch.return_types.max'对象无'eq'属性
问题解决:AttributeError: 'torch.return_types.max' object has no attribute 'eq'
错误原因
torch.max(input, dim)返回的是包含**(最大值张量, 最大值索引张量)**的复合对象(torch.return_types.max),你直接将这个对象赋值给predicted后调用.eq()方法,而该对象并没有eq属性,因此触发报错。
修正方案
你需要的是模型预测的类别(即最大值对应的索引),所以要从torch.max的返回值中提取索引部分:
- 方式1:通过索引取值
predicted = torch.max(outputs.data, 1)[1] - 方式2:解包丢弃不需要的最大值
_, predicted = torch.max(outputs.data, 1)
修正后predicted变为张量,即可正常调用.eq()方法执行后续的准确率计算逻辑。
额外提醒
你代码里的putputs是拼写错误,需要改为outputs,否则会触发NameError。
内容的提问来源于stack exchange,提问作者chinying Lu
相关产品推荐
相关产品推荐

