问题描述
在训练 yolov5
做简单的识别的时候出现,错误:RuntimeError: result type Float can‘t be cast to the desired output type long int
。下面对解决方案进行记录。
问题分析
所有的操作都是按照官网的教程来实施的,但是还是出现了错误,官网的yolov5-master
版本可以正常运行,但是yolov5-5.0/yolov5-6.1
等版本就是不可以运行, 想着是不是由于master版本和其他分支等版本下的utils的loss.py文件是不一样的。我估计是版本更新的时候出现了问题。
问题解决
修改utils/loss.py
文件中的两处内容:
第一处:
- 在
loss.py
中,找到
把上面的代码改成for i in range(self.nl): anchors = self.anchors[i]
for i in range(self.nl): anchors, shape = self.anchors[i], p[i].shape
- 在改了上面的内容之后,在找到控制点的
indices.append((b, a, gj.clamp_(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1))) # image, anchor, grid
改成:
indices.append((b, a, gj.clamp_(0, shape[2] - 1), gi.clamp_(0, shape[3] - 1))) # image, anchor, grid
之后就可以开始训练了:
总结
其实我也玩不明白,也是网上东抄抄,西看看,就纯记录。文章来源:https://www.toymoban.com/news/detail-425000.html
参考
https://blog.csdn.net/qq_42835363/article/details/127753543
pudn.com/news/6321667af0cde61357537e80.html文章来源地址https://www.toymoban.com/news/detail-425000.html
到了这里,关于【Error Logs】YoloV5出现RuntimeError: result type Float can‘t be cast to the desired output的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!