学习链接:https://github.com/chenyuntc/pytorch-book
第三章 PyTorch基础:Tensor和Autograd
- Tensor出现数据类型不匹配问题(在之后遇到类似问题进行同样处理即可)
【解决办法】发现a的数据类型是torch.int64,而报错显示这里需要float数据类型,将原语句改为c.scatter_(1, index, b.float())
即可
- 报错信息显示只有float类型才能计算梯度
【解决办法】将int数据类型变为float类型即可
第六章 实战指南
- 对于数据集的处理:按照教程指导从官网下载数据集,包括训练集和测试集,分别分为两个文件夹
train
和test1
,注意到在./data文件夹下也有相同命名的文件,我的处理是把这两个原来的文件删除,然后把新下载的两个数据集替换进去,后面的操作证明确实可行。
- 处理完数据集,运行如下命令启动训练,发现报错:
【解决办法】打开main.py文件,将文件第一行# coding:utf8
替换为# -*- coding: utf-8 -*-
即可。 - 将dataset.py文件中原48行(因为前面我写了注释,故对应我这边51行)
T.RandomReSizedCrop(224)
应改为T.RandomResizedCrop(224)
,大小写要纠正,否则会报错。
- 将basic_module.py文件中
save
函数中定义模型部分进行修改,原来是时间信息通过:
进行连接,运行会报错OSError: [Errno 22] Invalid argument: 'checkpoints/squeezenet_0921_10:14:20.pth'
【解决办法】将保存文件名称进行修改,我用下划线_
进行连接。
- 训练完数据集,运行如下命令进行测试,发现报错:
【解决办法】原config.py中存在一个小错误,如下图所示,在定义测试集存放的位置那一行可以发现应改为test_data_root='./data/test1/'