在尝试运行CVPR2019一篇行为识别论文的代码时,遇到了两个问题,记录如下。但是,原因没懂,如果看此文章的你了解原理,欢迎留言交流吖。

github代码链接:

方法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