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

TensorFlow 1.5目标检测API运行train.py报NotFoundError,1.4版本正常

嗨,我之前帮朋友排查过几乎一模一样的问题——从TensorFlow 1.4升1.5后跑目标检测API的train.py就弹出这个没头没尾的NotFoundError,其实都是版本适配或者编译环节的小坑,给你几个亲测有效的解决方向:

排查&修复步骤

1. 先搞定protobuf版本匹配

TensorFlow 1.5对protobuf的版本卡得很严,1.4用的旧版本大概率不兼容。直接卸载重装指定版本:

  • 卸载旧版:pip uninstall protobuf -y
  • 安装适配版:pip install protobuf==3.6.1
    (这个版本是TensorFlow 1.5官方文档明确推荐的,能解决90%以上的文件解析类NotFoundError)

2. 重新编译API的proto文件

哪怕你克隆了适配1.5的API源码,也可能因为protoc版本不对或者编译不完整导致问题:

  • 先装对protoc:下载protobuf 3.6.1版本的Ubuntu压缩包,解压后把protoc二进制文件移到/usr/local/bin(这样全局就能调用)
  • 进入API的research目录,执行编译命令:
    protoc object_detection/protos/*.proto --python_out=.
    
  • 接着重新执行setup安装:
    python setup.py build
    python setup.py install
    

3. 检查训练配置文件的细节

有时候这个错误是配置文件里的路径或参数不兼容导致的:

  • 确认fine_tune_checkpoint指向的预训练模型文件完整,.ckpt.meta、.ckpt.index、.ckpt.data-00000-of-00001这三个文件一个都不能少
  • 把input_path、label_map_path都改成绝对路径,避免工作目录变化导致找不到文件
  • 对照API自带的sample配置文件,检查你的配置里有没有参数名变化——比如1.5里某些字段的位置或命名和1.4有细微差别

4. 清理缓存重置环境

旧版本的TensorFlow缓存可能残留干扰:

  • 删除缓存目录:rm -rf ~/.keras/cache ~/.tensorflow
  • 如果用了虚拟环境,退出后重新激活,再运行train.py

最后再试一次训练命令,比如:

python object_detection/train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_coco.config

按照这个流程走下来,基本就能解决这个烦人的NotFoundError了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:05:48