这里运行也相当于在服务器里运行深度学习,服务器中也是切换当前文件夹下运行。
1、文件位置
pycharm写的模型、训练、预测的文件名(model.py、train.py、predict.py),文件也是pytorh代码编写。
文件位置:E:\桌面\pytorch项目练习\Test1_official_demo
2、已装Anaconda,且已装pytorch环境
前提在Anaconda已装pytorch环境,打开anaconda Prompt(此处最好右键选择‘以管理员身份运行’,避免后期安装遇到权限相关警告或错误)。
(base) C:\Users\Administrator>activate pytorch38
3.进入磁盘
进入目标python文件所在磁盘:如E盘
(pytorch38) C:\Users\Administrator>E:
4.进入磁盘目标文件夹:桌面\pytorch项目练习\Test1_official_demo
(pytorch38) E:\>cd 桌面\pytorch项目练习\Test1_official_demo
5.执行目标python文件
(pytorch38) E:\桌面\pytorch项目练习\Test1_official_demo>python train.py
6.遇到问题
运行之后出现
(pytorch38) E:\桌面\pytorch项目练习\Test1_official_demo>python train.py
Files already downloaded and verified
Files already downloaded and verified
Traceback (most recent call last):
File "train.py", line 71, in <module>
main()
File "train.py", line 28, in main
val_image, val_label = val_data_iter.next()
AttributeError: '_SingleProcessDataLoaderIter' object has no attribute 'next'
7.解决
Python2 代码中迭代器的使用,引用时用*.next()的方式在Python3中不再有效,而是会报错。找到代码28行
原
val_data_iter = iter(val_loader)
val_image, val_label = val_data_iter.next()
改后
val_data_iter = iter(val_loader)
val_image, val_label = val_data_iter.__next__()
改后重新运行python train.py
(pytorch38) E:\桌面\pytorch项目练习\Test1_official_demo>python train.py
Files already downloaded and verified
Files already downloaded and verified
[1, 500] train_loss: 1.766 test_accuracy: 0.425
[1, 1000] train_loss: 1.442 test_accuracy: 0.522
[2, 500] train_loss: 1.235 test_accuracy: 0.578
[2, 1000] train_loss: 1.151 test_accuracy: 0.599
[3, 500] train_loss: 1.035 test_accuracy: 0.597
[3, 1000] train_loss: 1.030 test_accuracy: 0.645
[4, 500] train_loss: 0.917 test_accuracy: 0.644
[4, 1000] train_loss: 0.914 test_accuracy: 0.653
[5, 500] train_loss: 0.829 test_accuracy: 0.654
[5, 1000] train_loss: 0.842 test_accuracy: 0.659
Finished Training
8.查看
当前文件多了数据文件夹data和模型权重Lenet.pth文件
9.用一张图片测试
(pytorch38) E:\桌面\pytorch项目练习\Test1_official_demo>python predict.py
plane