pytorch--(MisMatch in shape & invalid index of a 0-dim tensor)
在尝试运行CVPR2019一篇行为识别论文的代码时,遇到了两个问题,记录如下。但是,原因没懂,如果看此文章的你了解原理,欢迎留言交流吖。
问题1:“Mismatch in shape: grad_output[0] has a shape of torch.Size([1]) and output[0] has a shape of torch.Size([]).”
方法1:
根据定位的错误位置,我的是215行,将criticD_real.bachward(mone)改为criticD_real.bachward(mone.mean())
上一行注释。
保存后运行,发现又报类似的错:Mismatch in shape: grad_output[0] has a shape of torch.Size([]) and output[0] has a shape of torch.Size([64,1]).
方法2:将“方法1”中的改动复原,找到声明mone的位置,
111行: one=torch.FloatTensor([1])
112行: mone = one * -1
将111行的one 改为,one= torch.tensor(1, dtype=torch.float)
,保存后运行,发现报问题2的错。
问题2:UserWarning: invalid index of a 0-dim tensor.Use tensor.item() to convert a 0-dim tensor to a Python number .
方法1:搜索data[0],将其全部更换成item()。
至此,代码的错误解决。
简单完美,虽然我也没能理解why?
参考链接:
https://blog.csdn.net/xiangpijiao/article/details/103830086