TypeError: Cannot handle this data type: (1, 1, 64), |u1

报错背景:

我是在下载运行STANet网上找的遥感影像项目中出现的问题,既然是网上已有的成熟的项目,那大概率是环境问题而不是代码问题。所以此篇文章通过配置环境来解决问题:

排查问题的思路:

1、查了网上一篇博文:pytorch错误记录:TypeError: Cannot handle this data type: (1, 1, 64), |u1

说是需要版本回退,文中举的例子是pytorch1.7和pytorch1.10/pytorch1.11处理结果不一样,我当时用的python3.11,pytorch是2.1.2,所以初步思路是回退到pytorch1.7试试

使用pip命令回退到1.7,报错:Could not find a version that satisfies the requirement torch==1.7.0 (from versions: 2.0.0, 2.0.1, 2.1.0, 2.1.1, 2.1.2, 2.2.0, 2.2.1, 2.2.2),意思大概是在pip仓库里找不到1.7的版本

然后又用conda安装,还是找不到这个版本

试了conda config --add channels pytorch,没用

猜测是不是因为python版本不兼容导致的问题,于是在pytorch官网找了兼容的python版本

pytorch官网

于是将python环境从3.11切换到3.9

 conda activate env3.9

在网上找了1.7的安装包,网址是这个:下载对应的pytorch

cp指的是python版本,根据自己电脑系统下载,我这里是windows

 python3.9环境下
 # https://download.pytorch.org/whl/torch_stable.html
 # 上面是下载torch-1.7.1+cpu-cp39-cp39-win_amd64.whl的地址
 # 将本地的1.7.1的pytorch安装到环境中
 pip install C:\Users\DIY-PC\Downloads\torch-1.7.1+cpu-cp39-cp39-win_amd64.whl

重新运行项目,报错:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchvision 0.16.2 requires torch==2.1.2, but you have torch 1.7.1+cpu which is incompatible.
ultralytics 8.1.4 requires torch>=1.8.0, but you have torch 1.7.1+cpu which is incompatible.

这个错误表明你环境中存在依赖冲突。torchvision 需要 torch 版本大于等于 1.8.0,而 ultralytics 则要求 torch 版本为 2.1.2。当前安装的 torch 版本是 1.7.1+cpu,导致了这个冲突。

所以需要把torchvision安装下兼容的版本:

# 下载对应的torchvision
 pip install torchvision==0.9.1

至此,问题解决

总结:

回退pytorch版本有用,可以执行以下代码替换版本

 python3.9环境下
 # https://download.pytorch.org/whl/torch_stable.html
 # 上面是下载torch-1.7.1+cpu-cp39-cp39-win_amd64.whl的地址
 # 将本地的1.7.1的pytorch安装到环境中,需替换为自己本地的地址
 pip install C:\Users\DIY-PC\Downloads\torch-1.7.1+cpu-cp39-cp39-win_amd64.whl
 # 下载对应的torchvision
 pip install torchvision==0.9.1

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值