pytorch错误记录:TypeError: Cannot handle this data type: (1, 1, 64), |u1

在PyTorch 1.7与1.10/1.11之间的版本变化中,pairwise_distance函数的输出尺寸发生了变化,从(1, 1, 64, 64)变为(1, 64, 64, 1),这一差异导致了后续图像处理步骤的错误,表现为无法正确转换为PIL图像。解决方案是将PyTorch版本回退到兼容的版本以确保代码正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经过测试:

pairwise_distance函数在pytorch1.7上的表现与pytorch1.10/pytorch1.11上有区别,代码如下

pytorch1.7上

feat_A的size是1,64,64,64,feat_B的size是1,64,64,64

出来应该size是1,1,64,64

而在pytorch1.10/pytorch1.11

出来的size是1,64,64,1

import torch.nn.functional as F

self.dist = F.pairwise_distance(self.feat_A, self.feat_B, keepdim=True)

直接导致了进一步的计算图像大小存不出来

image_pil = Image.fromarray(image_numpy)
  File "D:\software\Anaconda3\envs\pt3.8\lib\site-packages\PIL\Image.py", line 2815, in fromarray
    raise TypeError("Cannot handle this data type: %s, %s" % typekey) from e
TypeError: Cannot handle this data type: (1, 1, 64), |u1

解决方式只能是版本回退

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如雾如电

随缘

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值