当前位置:   article > 正文

RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0—问题分析_runtimeerror: sizes of tensors must match except i

runtimeerror: sizes of tensors must match except in dimension 0. expected si

声明: 这里仅仅提供一个思路,暂时没有绝对正确通用的解决方案


作者:{ 墨理 }


感谢通过私信、评论交流,协力探讨解决问题的同学 UP 、Penser


探讨的 pytorch 报错信息如下


RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0
  • 1

探讨结论:

index


分析


Sizes of tensors dimension 说明 错误的发生是因为 tensors 的维度 不一致;

我的 第一反应是检查数据是不是混入非 3 通道的 数据;

但是呢正确做法是

  • 情况一:

输入 报错前后 数据变量 的 shape 和 size 来观察 ,根据经验往往会发现 某个tensor 数据 只有 3个维度 ,而其它是 4个 维度 ;
这种情况,需要 给 该 tensor expand 一个 维度;会用到 pytorch 张量 维度扩充 的 方法;

  • 情况二:[ 2021-1-12 ]

batchsize 需要设置 为 1 ;

这种情况,其实一个良好的代码是不应该有 batchsize 大小限制的,只能是 1 ,那岂不是很扯;

然而我们下午就很不巧因为这个问题探讨了很久,结果发现 batchsize 设置 为 1 ,这个错误就消失了;

  • 情况三:[ 2021-11-12 补充 ]

裁剪修正,使得训练数据集和目标或者最终所需要对比配对的数据集图像的尺寸一致

这位小伙伴在这篇博客下进行的交流,一周后,给出的解决方法截图如下


多阶段渐进式图像恢复 | 去雨、去噪、去模糊 | 有效教程(附源码)|【❤️CVPR 2021❤️】

2-1


因为大家所做实验会是不同研究方向,数据集也未必一致,因此解决思路未必通用


按照逻辑来说,目前最终归纳 几种 尝试 解决方法如下:

  • 裁剪修正,使得输入数据集和目标或者最终所需要对比配对的数据集图像的尺寸一致 【这种方式理应首先考虑】
  • 给 tensor 扩充 为对应维度
  • 检测是否混有单通道的数据
  • 尝试 batchsize 设置 为 1 ,看能否解决【这种属于无奈之举】

这是目前已知的可能解决该问题的经验之谈,其它方法 如确实能够解决问题,欢迎补充;


欢迎补充


各位大佬,如能解决,欢迎评论区补充你的解决方案;

9-6

9-9


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/149655
推荐阅读
相关标签
  

闽ICP备14008679号