You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Limelight Detector训练Notebook递归错误求助:依赖兼容问题

RecursionError When Training Limelight 3A Custom Detector via Official Colab Notebook

问题概述

使用Limelight提供的Google Colab Notebook训练Limelight3A自定义检测器,4月4日训练成功,但后续所有训练尝试均失败。两个核心环节抛出RecursionError:

  • 第3节「Generate Labels File」:调用get_num_classes()或get_classes()方法时触发
  • 第5节「Convert Model to TFLite」:执行import tensorflow as tf时触发,错误调用路径与第3节完全一致

已通过手动替换方法参数绕过第3节的错误,但无法解决第5节的问题。推测问题根源为tensorflow、ml_dtypes或numpy的版本兼容性冲突,因需生成Limelight要求的特定8bit.tflite文件,无法更换训练工具。

解决方案建议

1. 锁定依赖版本至4月4日兼容版本

Colab会自动更新基础环境依赖,导致原兼容版本被替换。强制安装4月初的稳定兼容版本:

# 卸载现有冲突依赖
!pip uninstall -y tensorflow ml_dtypes numpy
# 安装4月4日前后验证可行的版本组合
!pip install tensorflow==2.15.0 ml_dtypes==0.2.0 numpy==1.26.4

安装完成后,必须重启Colab运行时(Runtime -> Restart runtime),再重新执行所有代码块。

2. 修复递归调用逻辑

检查Notebook中get_num_classes()和get_classes()的实现,确认是否存在无终止条件的自调用或循环依赖。如果是Notebook代码本身的递归错误,直接手动硬编码类别信息:

# 替换原方法,根据你的数据集修改数值和类别名
def get_num_classes():
    return 3  # 你的实际类别数量

def get_classes():
    return ["target1", "target2", "target3"]  # 你的类别列表

3. 清除Colab缓存残留

旧依赖缓存可能导致版本冲突,执行以下命令清理后重新安装指定版本:

!rm -rf ~/.cache/pip
!rm -rf /content/tensorflow_logs

4. 切换至旧版本Colab运行时

在Colab中切换到与4月4日匹配的运行时版本:

  1. 点击顶部菜单栏「Runtime」->「Change runtime type」
  2. 选择Python版本为3.10(对应4月初的Colab基础环境)
  3. 应用后重新安装指定版本的tensorflow、ml_dtypes和numpy

内容的提问来源于stack exchange,提问作者AstarHolt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:23:23