今天在使用torchstat工具(https://github.com/Swall0w/torchstat)进行模型分析的时候,程序提示了一个这样的错误,AttributeError: ‘torch.Size’ object has no attribute ‘numel’,如下图所示。从错误的traceback可以看出,torchstat工具是在分析一个卷积层的时候碰到了这个错误,最终出错的位置是torchstat工具的源码compute_memory.py。
出问题的这个卷积层是ResNet-50的第一个卷积层,此前用torchstat工具对ResNet-50进行分析并没有出现这个问题。考虑到此前对ResNet-50进行分析时使用的是Pytorch 1.1.0,而这次使用的是Pytorch 0.4.1,结合错误的产生是对‘torch.Size’使用了‘numel’,推测是torchstat工具对Pytorch的支持有版本限制。浏览torchstat工具在Github上的主页,可以看到该工具支持Pytorch 0.4.1以上的版本。因此,推测最新版torchstat工具不能很好地支持Pytorch 0.4.1,使用如下命令安装0.0.6版本的torchstat工具解决了这一问题,程序正常运行。