一、在自己电脑上(Windows)
1.报错:“c10_cuda.dll or one of its dependencies“
重新建一个虚拟环境,重装pytorch==1.12解决问题。
2.报错:OSError: [WinError 1455] 页面文件太小,无法完成操作。
Error loading "D:\Anaconda\envs\DALM\lib\site-packages\torch\lib\shm.dll" or one of its dependencies.
运行时电脑虚拟内存太小了,没有空间了。解决办法,将D盘分配虚拟内存:
3.torchtext版本问题:from torchtext.legacy.data import Iterator
from torchtext.data import Iterator
遇到问题
下面的代码在torchtext 0.12 下无法运行
from torchtext.data import Iterator
产生报错
ImportError: cannot import name 'Iterator' from 'torchtext.data' (/usr/local/lib/python3.8/dist-packages/torchtext/data/__init__.py)
后来google一下,发现应该使用torchtext.legacy 包
from torchtext.legacy.data import Iterator
遇到问题 : Cannot find reference 'legacy' in '__init__.py | __init__.py'
在0.9以上的版本中,torchtext.legacy里面存着之前老版本的包,比如Iterator但是在torchtext==0.12下这个legacy被移除了。所以只能用别的版本。
在官方新版本的release torchtext==0.12.0中找到了相关的说明,移除了legacy包:https://github.com/pytorch/text/releases
4.torchtext版本和torch版本对应关系很严格,如下:
在我的电脑上(windows)中变换pytorch版本很不方便,需下载对应版本的三个whl文件,因为直接pip安装很容易失败。
pytorch各文件官网下载地址如下:
download.pytorch.org/whl/torch_stable.html
然后用命令安装:如安装1.12
pip install D:\whl\pytorch1.12_win\torch-1.12.0+cu113-cp39-cp39-win_amd64.whl
pip install D:\whl\pytorch1.12_win\torchvision-0.13.0+cu113-cp39-cp39-win_amd64.whl
pip install D:\whl\pytorch1.12_win\torchaudio-0.12.0+cu113-cp39-cp39-win_amd64.whl
5.from torch.optim.optimizer import required 问题
报错:Cannot find reference 'required' in 'optimizer.pyi'
试了很多pytorch版本(2.0.1,1.12,1.11,1.7)都不对,仍然报错
有一个解决办法是不导required包,在代码中加required函数:
# from torch.optim.optimizer import required
class _RequiredParameter:
"""Singleton class representing a required parameter for an Optimizer."""
def __repr__(self) -> str:
return "<required parameter>"
required = _RequiredParameter()
这样可以暂时解决。
二、服务器上(linux)
1.服务器配置miniconda十分方便,参考:
2.服务器linux中配置pytorch环境也是十分方便:
各版本copy官网相应的命令直接pip就行。
Previous PyTorch Versions | PyTorchhttps://pytorch.org/get-started/previous-versions/如:
pip install torch==1.12.0+cu113 torchvision==0.13.0+cu113 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu113
3.pytorch版本报错:
pytorch版本为1.7.1时
ModuleNotFoundError: No module named ‘torch.utils._pytree’
该问题为版本不匹配问题,经查询,我当前环境下安装的pytorch版本为1.7.1,而报错的模块为1.8.0以后引入,故需要将现存的pytorch卸载重新安装对应版本。
pytorch版本为2.0.1时
AttributeError: '_MultiProcessingDataLoaderIter' object has no attribute 'next'
最终pytorch版本还是和我的windows一样为1.12.0时可以运行,比较稳定。