【问题记录】代码里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时候的问题)

posted @ 2023-02-26 23:47  ltl0501  阅读(694)  评论(0编辑  收藏  举报