em,就是在进行训练这一部分的时候出现了如图中所框住的那部分的问题。
(我也是刚学,并不知道为什么会出这样的问题。我也是跟着别人的文章一点点做的。参考文章为https://blog.csdn.net/weixin_46709801/article/details/127833967?spm=1001.2014.3001.5506)
最后的训练的数据的结果是这样的:就很难评。
em,就是在进行训练这一部分的时候出现了如图中所框住的那部分的问题。
(我也是刚学,并不知道为什么会出这样的问题。我也是跟着别人的文章一点点做的。参考文章为https://blog.csdn.net/weixin_46709801/article/details/127833967?spm=1001.2014.3001.5506)
最后的训练的数据的结果是这样的:就很难评。
引自免费微信小程序:皆我百晓生
看起来你在尝试使用YOLOv7训练一个针对蜜蜂识别的模型,但在训练过程中遇到了错误。这个错误提示说结果类型Float
不能被转换成期望的输出类型__int64
。这通常发生在你试图将浮点数赋值给整数类型的变量时。在你的案例中,可能是由于某些索引操作导致的。
要解决这个问题,我们需要查看具体的代码行。从提供的信息来看,问题出现在find_3_positive
函数中的这行代码:
indices.append(cb, a, gj.clamp(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1)))
这里似乎是在尝试对gj
和gi
进行约束,然后将它们添加到列表中。但根据错误信息,看起来gj
和gi
是浮点型,而你需要的是整数型。为了确保gj
和gi
是整数,你需要修改clamp
函数的返回类型。你可以通过取整来实现这一点,例如使用Python内置的round
函数或者math.floor
函数。
下面是修复后的代码片段:
import math
# ...
gj_int = round(gj.clamp(0, gain[3] - 1))
gi_int = math.floor(gi.clamp_(0, gain[2] - 1))
indices.append(cb, a, gj_int, gi_int)
如果你没有安装math
模块,只需要导入它就可以使用math.floor
函数了。请确保替换掉原始代码中的相应行,并重新运行训练脚本看看是否解决了问题。
另外,对于训练结果难以评价的情况,你可以检查以下几个方面:
config.yaml
文件,确认网络结构、锚点设置以及训练参数是否适合你的任务。如果问题仍然存在,可能需要更详细的代码分析或调试。如果你能提供更多的上下文代码,我会更好地帮助你定位问题。