陆十四 2024-06-08 22:59 采纳率: 100%
浏览 12
已结题

关于利用yolov7训练自己的蜜蜂数据集

em,就是在进行训练这一部分的时候出现了如图中所框住的那部分的问题。
(我也是刚学,并不知道为什么会出这样的问题。我也是跟着别人的文章一点点做的。参考文章为https://blog.csdn.net/weixin_46709801/article/details/127833967?spm=1001.2014.3001.5506

img

最后的训练的数据的结果是这样的:就很难评。

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-08 22:59
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在尝试使用YOLOv7训练一个针对蜜蜂识别的模型,但在训练过程中遇到了错误。这个错误提示说结果类型Float不能被转换成期望的输出类型__int64。这通常发生在你试图将浮点数赋值给整数类型的变量时。在你的案例中,可能是由于某些索引操作导致的。

    要解决这个问题,我们需要查看具体的代码行。从提供的信息来看,问题出现在find_3_positive函数中的这行代码:

    indices.append(cb, a, gj.clamp(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1)))
    

    这里似乎是在尝试对gjgi进行约束,然后将它们添加到列表中。但根据错误信息,看起来gjgi是浮点型,而你需要的是整数型。为了确保gjgi是整数,你需要修改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函数了。请确保替换掉原始代码中的相应行,并重新运行训练脚本看看是否解决了问题。

    另外,对于训练结果难以评价的情况,你可以检查以下几个方面:

    1. 数据预处理:确保你的输入图像已经被正确地归一化和调整大小。
    2. 模型配置:检查config.yaml文件,确认网络结构、锚点设置以及训练参数是否适合你的任务。
    3. 学习率和优化器:适当的学习率可以帮助加速收敛。考虑使用学习率调度策略。
    4. 训练样本数量:确保有足够的标注样本用于训练,特别是正类别的蜜蜂图片。
    5. 过拟合:如果模型过拟合,可以增加数据增强技术,比如随机翻转、旋转等。
    6. 监控指标:在TensorBoard中关注损失项的变化,看是否有明显的下降趋势。

    如果问题仍然存在,可能需要更详细的代码分析或调试。如果你能提供更多的上下文代码,我会更好地帮助你定位问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月27日
  • 已采纳回答 6月19日
  • 创建了问题 6月8日

悬赏问题

  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?