1.
错误:
*** out of dimension of x
原因:
使用batch_size == 2 进行训练时,数据集不能被batch_size整除,最后一个输入batch_size的维度为1,经过torch.seqeeze() 函数处理时,压缩了特征向量中的batch_size维度,导致维度丢失,。
解决:
再txt文件中,删除最后一个数据,使得数据集可以被batch_size整除
2.
错误:
AssertionError: CUDA unavailable, invalid device 0 requested
原因:
1. cuda 与 pytorch 版本不对应
查看: https://pytorch.org/get-started/previous-versions/
2. 直接使用 pip 导致安装了 cpu 版本的pytorch
查看: https://download.pytorch.org/whl/torch_stable.html
发现分为
cpu/torch 和 cux.x/torch 两个目录
3. pip 使用cach中的pytorch版本
而catch中的版本 与 本地cuda版本不对应
4. pip 安装时默认选择最高cuda版本的pytorch安装包
这也发现,pytorch与cuda版本是一一对应的,并不是一个pytorch版本可以兼容多版本的cuda(官方网页的误导),因此再切换cuda(10.2->10.1)时,必须要重装pytorch(1.6.0),尽管看起来现有版本是符合cuda版本要求的,我们也要重新安装pytorch,因为pytorch(1.6.0)会为不同的cuda版本发布不同的包,尽管他们的版本信息都显示为1.6.0
查看 torch 版本详细信息:
使用官方命令安装:
直接pip ,导致使用cach中的pytorch版本
catch 中的版本对应cuda10.2,而本地安装为10.1