最近在看 2021 CVPR 的一篇视频分类文章 TDN: Temporal Difference Networks for Efficient Action Recognition。我是刚接触到视频分类的模型,而且这篇文章使用 Conv2D 捕获时序信息,因此数据集的返回数据维度搞不清楚,因此我先运行测试数据集的代码,代码与其在 Github 上开源的一致。
在运行时,报了错误 TypeError: 'Compose' object is not iterable。
在网上搜了很多,都是无关的,然后我自己去仔细对比了下代码,发现是少了一对括号的问题。
源代码中的数据增强方法写的是:
train_augmentation = model.get_augmentation(
flip=False if 'something' in args.dataset else True)
其中 get_augmentation 返回的是一个 torchvision.transforms.Compose() 对象,如果不加括号,如 train_augmentation = model.get_augmentation,则解释器认为这是一个赋值操作,不是实例化操作,因此在后续传输数据时就会报该错误。
下次还是要仔细一点。。这种低级错误实在不该犯,还耽误了这么多的时间。。



