GPU tensor不能直接转为numpy数组,必须先转到CPU tensor
torch.cat()用于将多个张量在某维拼接
1 | # C为A和B在0维拼接的张量 |
torch.tensor()用于生成新的张量,函数原型是
1 | torch.tensor(data, dtype=None, device=None, requires_grad=False) |
unsqueeze()函数意味在x维新增一个维度为1
例已有一个二维张量a的维度为[2,3],
即[
[0,1,2], [3,4,5]
]
1 | unsqueeze(1) |
a变成三维张量,维度变成[2,1,3],
即[
[
[0,1,2]
],
[
[3,4,5]
]
]
squeeze()函数意味若x维维度为1则将其去掉
Anaconda中更换Pytorch版本命令
1 | conda uninstall pytorch |
Pytorch中关于GPU的常用命令
1 | import torch |
Pytorch版本与CUDA版本对应表
CUDA版本 | Pytorch版本 |
---|---|
7.5 | 0.4.1 ,0.3.0, 0.2.0,0.1.12 - 0.1.6 |
8.0 | 1.0.0 ,0.4.1 |
9.0 | 1.1.0,1.0.1, 1.0.0,0.4.1 |
9.2 | 1.4.0,1.2.0,0.4.1 |
10.0 | 1.2.0,1.1.0,1.0.1 ,1.0.0 |
10.1 | 1.6.0 ,1.5.0 , 1.4.0,1.3.0 |
10.2 | 1.6.0, 1.5.0 |
Anaconda查看当前环境下的包除了
1 | pip list |
还可用
1 | conda list |
显示内容略有区别
Anaconda安装指定包指定命令格式
1 | # 例:安装cudatoolkit10.1.243 |
可能遇到的问题
报错’LSTM’ object has no attribute ‘_flat_weights_names’
解决办法:一般原因是Pytorch版本不兼容,将Pytorch降级为低版本即可
1
2conda uninstall pytorch
conda install pytorch==1.3.1 -c pytorchPytorch降级后,torch.cuda.is_available()又返回False
解决办法:
- 重新安装降级后的Pytorch支持的CUDA
- const list检查cudatoolkit版本是否正确,若不正确使用下述命令安装正确版本
1
conda install cudatoolkit=10.1.243
- 检查pytorch是否安装成了CPU版本
图8
conda命令安装的一般默认为CPU版本。可在此处下载正确版本离线包放在D:\Anaconda3\pkgs里,然后本地安装
1
conda install --use-local D:\Anaconda3\pkgs\离线包名字(包括完整后缀)