代码在https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html
在页面的最下面有代码的下载链接,选择下载“cifar10_tutorial.py”,直接在终端中运行程序:
python cifar10_tutorial.py
出现以下提示:Downloading http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz正在下载cifar10数据集。此处需要较久的等待,故可提前用迅雷等下载好数据集http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz。
在与所下载代码同一根目录(work)下新建data文件夹,然后在data文件夹里,对数据库解压:tar -xzvf cifar-10-python.tar.gz
解压好了再在目录work下运行Python cifar10_tutorial.py即可。
遇到的问题:
1. File "cifar10_tutorial.py", line 57
"""
SyntaxError: (unicode error) 'utf-8' codec can't decode bytes in position 1040-1041: invalid continuation byte
解决:改掉代码中乱码部分即可。
2.UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 5335-5336: invalid continuation byte
解决:依然是注释部分的编码问题,一定要把乱码部分都改掉,实在不行删掉所有的注释。
3.Finished Training
GroundTruth: cat ship ship plane
Traceback (most recent call last):
File "cifar10_tutorial.py", line 129, in <module>
print('Predicted: ', ' '.join('%5s' % classes[predicted[j]] for j in range(4)))
File "cifar10_tutorial.py", line 129, in <genexpr>
print('Predicted: ', ' '.join('%5s' % classes[predicted[j]] for j in range(4)))
TypeError: tuple indices must be integers or slices, not torch.LongTensor
训练结束后,测试时报类型错误。
解决:将219行代码print('Predicted: ', ' '.join('%5s' % classes[predicted[j]] for j in range(4)))修改为
print('Predicted: ', ' '.join('%5s' % classes[predicted[j][0]]
for j in range(4)))
然后代码就能顺利运行啦。