【发布时间】:2021-07-13 11:31:34
【问题描述】:
我目前正在自学和实施 PyTorch。 在使用本教程进行迁移学习时: https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html
我在这个特定的代码块中遇到了错误:
image_datasets = {x: datasets.ImageFolder(os.path.join(main_dataset, x),
transforms[x])
for x in ['Train','Test']}
错误码如下:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-41-c83fc3ba4a1c> in <module>()
1 image_datasets = {x: datasets.ImageFolder(os.path.join(main_dataset, x),
2 transforms[x])
----> 3 for x in ['Train','Test']}
<ipython-input-41-c83fc3ba4a1c> in <dictcomp>(.0)
1 image_datasets = {x: datasets.ImageFolder(os.path.join(main_dataset, x),
2 transforms[x])
----> 3 for x in ['Train','Test']}
TypeError: 'module' object is not subscriptable
我确定我没有错误地使用任何模块,也没有在这个特定代码块中出现任何拼写错误。
在搜索错误代码时,我也没有找到与此相关的任何内容。
请帮忙,谢谢。
【问题讨论】:
-
你需要在错误指向的地方写
data_transforms[x]而不是transforms[x]。就目前而言,您正在尝试索引torchvision.transforms(您导入为例如from torchvision import transforms),因此出现错误。 -
啊,现在我明白了。一定是我在上一个块中声明的转换变量让编译器感到困惑。谢谢!
-
如果您确实声明了一个名为
transforms的变量,请更改它并重新启动内核,因为它会影响torchvision.transforms。 -
是的,我意识到了这个愚蠢的错误,我忘记了变量名很容易混淆编译器。多谢赐教。
-
我已将您的答案作为解决方案发布并归功于您,感谢您的帮助!
标签: python pytorch google-colaboratory