【问题记录】代码里import的torch版本不是我安装的pytorch版本
背景
之前用的机器现在没卡,今天暂时换了另一个机器。我之前是打包过我的conda环境的,今天脑抽觉得解包创建新conda环境有点慢,关键的包也没几个,就直接install了。
执行了下面几个命令:
$ conda create -n ltlCL python=3.6
$ pip install torch==1.9.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
$ conda install -c conda-forge packaging
$ conda install -c conda-forge visdom
$ conda install -c conda-forge gputil
$ conda install -c conda-forge dominate
然后运行的时候发现忘了装torchvision和matplotlib,又
$ conda install torchvision
$ conda install matplotlib
以上是这个环境里执行过的所有涉及安装的操作
问题
运行代码时有一行调用pytorch的CE损失,一般来说这个CrossEntropy的reduction默认为mean,但是这个项目需要不取平均,所以我设的reduction=None
cross_entropy_loss = torch.nn.CrossEntropyLoss(reduction='none')
后报错
self.cross_entropy_loss = torch.nn.CrossEntropyLoss(reduction=None)
$ TypeError: __init__() got an unexpected keyword argument 'reduction'
reduction参数显然是有的,这就很奇怪,除非是很早的低版本pytorch,我装的是1.9,不太可能啊。
在pycharm里开了一个命令行
0.4.0??????????????
解决
经过搜索看到了俩帖子,虽然我不是里面的问题但是确实给我提供了帮助
为什么安装的pytorch版本和显示的version不一样?
conda环境中的pytorch版本和实际安装的不一致
我按这俩帖子排查自己这边,用conda uninstall torch和pip uninstall torch都试了,没有多装torch。
思来想去来了一手搜索:
这里有一个默认的pytorch0.4.0,。。。。
不知道这个东西怎么进来的,貌似被import的时候优先级比1.9高,卸了,然后重装了一个torchvisoin0.10就好了
(推测是装torchvision时候的问题)