PyTorch版本问题

作于2019.10.14

超分辨率的PyTorch实现,要求>=特定版本的PyTorch

本人在最近需要用到超分辨率算法,于是从GitHub上找了开源的项目。
但是本地部署之后发现,导入第三方库的时候有很多报错。

经查阅后,发现在PyTorch1.1.0之后,很多库弃用,或者是进行了整合修改(不在原位置)。这就导致了import报错。简单来说,就是有些时候,PyTorch版本之间不兼容(不向下兼容)的问题

于是本人从PyTorch官网下载了当时最新的PyTorch1.2.0(中途还出现了几次意外情况,见另一篇博客)。

这样就解决了import报错,但是在实际运行的时候仍然报错,报错信息为ImportError: cannot import name ‘dataloader’,但是torch.utils.data.dataloader是可以定位并且正常打开的(在PyCharm中按住ctrl再点击dataloader,可以打开dataloader.py文件)。

目前这个报错并没有解决,由于课内事务繁重,只能先暂时搁置这个问题。在这里挖个坑做个记录。

PyTorch更新之后导致旧项目报错

第一个报错

但是在更新PyTorch(1.0.1->1.2.0->1.1.0)之后,发现另一个项目出现了新的warning。

这个warning在1.2.0和1.1.0均存在。

简单来说应该就是定位到torch的utils。估计在实际运行的时候也会报错。(本人目前没有来得及尝试在我电脑的环境下是否会报错,现在这个程序是在学校的服务器上运行,所以报错也是我目前的猜测)。

但是有一点,这个问题并没有出现在其他的项目中。也就是说在其他项目中运行:

import torch
import torch.utils.data.dataloader

是不报错的。所以目前看来,这个warning好像只是存在于cloud_classification这个项目中。

综上所述,我更怀疑是PyCharm抽风。

第二个报错

另外我又检查了另一个项目,cifar-10.py。发现在PyTorch 1.2.0下会报错。

报错信息如下:

Traceback (most recent call last):File "E:\Anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3291, in run_codeexec(code_obj, self.user_global_ns, self.user_ns)File "<ipython-input-2-7623631534a6>", line 1, in <module>runfile('C:/Users/73416/PycharmProjects/untitled4/cifar-10.py', wdir='C:/Users/73416/PycharmProjects/untitled4')File "E:\PyCharm 2018.3.4\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfilepydev_imports.execfile(filename, global_vars, local_vars)  # execute the scriptFile "E:\PyCharm 2018.3.4\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfileexec(compile(contents+"\n", file, 'exec'), glob, loc)File "C:/Users/73416/PycharmProjects/untitled4/cifar-10.py", line 230, in <module>for input_data, _ in train_loader:File "E:\Anaconda\lib\site-packages\torch\utils\data\dataloader.py", line 560, in __next__batch = self.collate_fn([self.dataset[i] for i in indices])File "E:\Anaconda\lib\site-packages\torch\utils\data\dataloader.py", line 560, in <listcomp>batch = self.collate_fn([self.dataset[i] for i in indices])File "C:/Users/73416/PycharmProjects/untitled4/cifar-10.py", line 205, in __getitem__target = self.target_transform(label)File "C:/Users/73416/PycharmProjects/untitled4/cifar-10.py", line 164, in target_transformtarget = torch.from_numpy(label).long()     # 变为torch.LongTensor
TypeError: expected np.ndarray (got numpy.ndarray)

而且实话实说我并没有看懂这个报错。网上搜了一圈也没有找到和我报错信息相同的。

这个错误是出现在PyTorch 1.1.0下的,之后我把PyTorch 降级到了1.0.1(我之前一直在用的版本),发现报错消失,运行正常。

综上所述,这也是,PyTorch版本之间不兼容(不向下兼容)的问题

查看PyTorch的更新日志

当然,理论上这些版本之间的不兼容理论上是可以预料的。预料的方式就是查阅PyTorch的更新日志。

查看方式如下:

  • 进入PyTorch的GitHub。
  • 点击release
  • 找到对应的tag

即可获得PyTorch每个版本的更新日志。

[PyTorch] PyTorch版本不兼容问题+更新日志链接相关推荐

  1. 无名创新TIVA LaunchPad V2版本飞控代码阶段性更新日志

    TIVA LaunchPad V2版本飞控代码阶段性更新日志: 20220430主要更新如下 1.增加了飞控串口直接解析2D激光雷达传感器数据.OLED激光雷达点云数据显示,方便后续处理避障.绕障飞行 ...

  2. 悟空 CRM(9.0版本)V9.0_20190416 更新日志

    修复: 1.客户管理-工作台-销售趋势:按月筛选时有数据,按季筛选时无数据 2.新增场景设置为默认标签后,点击删除,提示"网络请求失败,请稍候再试" 3.自定义字段多选项多出一个空 ...

  3. 悟空CRM(9.0版本)V9.0_20190407 更新日志

    百度智能云 云生态狂欢季 热门云产品1折起>>>   悟空CRM9.0 主要技术栈 后端框架:ThinkPHP 5.0.2 前端MVVM框架:Vue.JS 2.5.x 路由:Vue- ...

  4. Nvidia GeForce GT730不支持Pytorch 1.2.x GPU功能与可能解决办法及Pytorch各版本CUDA Capability兼容列表

    问题: 近期在Windows 10 Pro 64位系统下,想基于Pytorch GPU版本进行时间序列LSTM模型的训练,机器配置为数年前的硬件,显卡是Nvidia GeForce GT730,CUD ...

  5. pytorch gpu版本的最全安装教程,含环境配置、CUDA(百度云下载)安装程序失败解决方案

    看过我cpu版本的pytorch小白安装教程CPU版pytorch小白教程应该已经会设置清华源了,这里不再叙述,gpu版本的pytorch会默认以清华镜像源来下载,速度不用担心. 请关闭杀毒软件 尤其 ...

  6. pytorch GPU版本安装 win10

    我原先装的是pytorch cpu版本,在复现论文源码的时候提示AssertionError: Torch not compiled with CUDA enabled,查了一下资料,又看了一下电脑的 ...

  7. 【深度学习】PyTorch 历史版本安装-祖传老代码运行刚需

    最新 PyTorch 安装 以及 CUDA 版本 如果要安装最新的 PyTorch 其实是很简单的,直接到官网首页就有各种系统的安装方法,如同所示: 这里有一个是 CUDA 版本,实测需要一模一样,这 ...

  8. pytorch各种版本最简单安装,不用自己安装cuda cudnn

    pytorch各种版本 pip 安装命令 查看官网 https://pytorch.org/get-started/previous-versions/ conda +pytorch 安装 1.安装c ...

  9. 冰蝎各个版本的更新日志

    工具在资源中最新版本 ###2021.4.29 v3.0 Beta 11[t00ls专版] 更新日志 1.修复了某些情况下CS反弹提示Class not found的问题: 2.修复了Java版本较新 ...

最新文章

  1. 阿里提供中文搜索新选项!AI引擎+达摩院黑科技,你要试试吗?
  2. spring中Validation设计与实现
  3. [vue] vue自定义事件中父组件怎么接收子组件的多个参数?
  4. DataReader类访问字段的值
  5. iPhone 12将首次加入屏下指纹?都是为它铺路?
  6. CSS3 高斯模糊与动画效果
  7. Oracle 判断CLOB字段是否为null
  8. Graphviz样例之集群流程图
  9. 程序员求职之道(《程序员面试笔试宝典》)之民间的企业排名的可信度到底有多大?...
  10. Sql Server系列:数据表操作
  11. ubuntu启动virtualbox出错解决办法:RTR3InitEx failed with rc=-1912 (rc=-1912)
  12. Android-两种方式实现走马灯效果
  13. 引用一个falsh使它显示出来
  14. 阶段案例趣PHP网站开发实战,PHP基础案例第16章 阶段案例——趣PHP网站开发实战.ppt...
  15. StrongShop跨境电商系统源码 | 支持多语言多货币
  16. Android GMS重要工具和资料下载
  17. 深度学习视觉目标跟踪算法毕业论文【matlab】
  18. python课设答辩ppt_学生成绩管理系统答辩幻灯片.ppt
  19. 爬取豆瓣短评之《后来的我们》-------后来的我们没有故事
  20. 从何处来,往何处去——关于数学起源和目的思考

热门文章

  1. python基础教程-Python基础
  2. Kaldi语音识别快速入门
  3. 微信小程序实现语音识别功能
  4. python地图热力图是什么意思_python热力图
  5. redis java eval_【宇润日常疯测-002】Redis-eval() 到底好在哪
  6. vue elementui表单清空前一次的数据
  7. 【java笔记】数组概念初始化及相关操作
  8. FFmpeg的H.264解码器源代码简单分析:解码器主干部分
  9. HEVC与VP9编码效率对比
  10. python的数据库操作_Python对数据库操作