您现在的位置是:首页 >学无止境 >【pytorch | bug | 版本不兼容】:RuntimeError: Expected 2D (unbatched) or 3D (batched) input to conv1d, but g网站首页学无止境
【pytorch | bug | 版本不兼容】:RuntimeError: Expected 2D (unbatched) or 3D (batched) input to conv1d, but g

作者:非妃是公主
专栏:《python学习》《计算机视觉》
博客地址:https://blog.csdn.net/myf_666
个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩
专栏推荐
| 专栏名称 | 专栏地址 |
|---|---|
| 软件工程 | 专栏——软件工程 |
| 计算机图形学 | 专栏——计算机图形学 |
| 操作系统 | 专栏——操作系统 |
| 软件测试 | 专栏——软件测试 |
| 机器学习 | 专栏——机器学习 |
| 数据库 | 专栏——数据库 |
| 算法 | 专栏——算法 |
一、报错信息
RuntimeError: Expected 2D (unbatched) or 3D (batched) input to conv1d, but got input of size: [4, 128, 160, 120]
二、原因分析
经过检索发现,这是由于pytorch新版本与老版本之间不兼容导致的1:

因此,按照上面的说法,解决方案有2种:
- 重构代码;
- 配置老版本的环境
pytorch=1.10。
由于在复现论文,对论文的代码并不是很熟悉,因此为了避免节外生枝,果断选择了第2种方式。
三、解决过程
解决过程如下:
首先找到pytorch的官网:https://pytorch.org/get-started/locally/
打开后界面如下(注意,可能会由于网络原因造成网页打不开,需要想一些办法,自行解决吧= =。)

向下滑,会发现一个自动生成 pip 命令的控件,如下:

但是它只能生成最新版本的命令,如上图,这并不是我们想要的,我们想要安装 1.10 版本的 pytorch 所以我们点击下图中箭头指向的超链接,安装以前版本的,至少是pytorch1.10版本。

打开后,界面如下:

这里面都是pytorch早期版本的一些安装命令了。
往下滑,找到 v1.10 版本,以及 Windows 下的安装命令,同时需要考虑一下自己电脑的cuda版本,我的 cuda 版本是 11.5 的,所以我选择 cuda11.3 的那个指令(因为同为11,应该是向后兼容的,至于如何查看 GPU 的 cuda 版本,请您继续往下看),如下:

关于cuda版本的选择主要看NVIDIA的控制面板->帮助->系统信息->组件,然后就可以看到了,如下图:

因此,选择命令如下:
# CUDA 10.2
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=10.2 -c pytorch
有了安装命令之后,创建虚拟环境,然后运行安装命令就可以了,关于创建虚拟环境的详细步骤可以看我这一篇文章,十分简洁,2分钟就可以搞定:python配置虚拟环境,并在虚拟环境中安装pytorch教程.

经检验,pytorch环境及cuda都已经配置成功(注:检验方法也在上面链接中有详细说明),如下:

重新训练模型,发现正常运行,如下:

the end……
关于pytorch版本不兼容的一个小bug到这里就要结束啦~~到此既是缘分,欢迎您的点赞、评论、收藏!关注我,不迷路,我们下期再见!!
??? 我是Cherries,一位计算机科班在校大学生,写博客用来记录自己平时的所思所想!
??? 内容繁杂,又才疏学浅,难免存在错误,欢迎各位大佬的批评指正!
??? 我们相互交流,共同进步!
注:本文由
非妃是公主发布于https://blog.csdn.net/myf_666,转载请务必标明原文链接:https://blog.csdn.net/myf_666/article/details/129308874






U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结