在Colaboratory训练TensorFlow Detection API时遇两类运行报错求助
解决Colaboratory中TensorFlow Object Detection API训练的两个常见错误
我之前在Colab上折腾TensorFlow Object Detection API训练的时候,也碰到过和你一模一样的两个问题,给你一步步拆解解决方法:
1. 解决no module named deployment错误(!python运行时)
这个问题本质是你通过sys.path.append添加的路径只在当前Python进程生效,但用!python是新开了一个独立进程,之前的路径设置不会继承。而且你可能还没完成Object Detection API的依赖安装步骤,正确的做法是:
首先切换到models/research目录下(如果还没在的话):
%cd /content/models/research
然后编译protobuf文件(这是API要求的必备步骤):
!protoc object_detection/protos/*.proto --python_out=.
接着安装API的依赖包,这样Python就能全局找到deployment这类模块了:
!cp object_detection/packages/tf2/setup.py . !python -m pip install .
2. 解决Duplicate flag error: the flag 'master' is defined twice错误(%run运行时)
这个错误是因为Colab的IPython环境本身已经定义了名为master的命令行flag,而train.py里也定义了同名的flag,两者冲突导致的。所以不要用%run来执行train.py,改用!python的方式运行,配合上面的依赖安装步骤,就能避开这个冲突。
最后验证运行
确保你在object_detection目录下,然后用类似下面的命令启动训练:
!python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v2_fpnlite_320x320_coco17_tpu-8.config
(记得把后面的参数换成你自己的配置路径和训练目录)
内容的提问来源于stack exchange,提问作者eColumbia99
相关产品推荐
相关产品推荐

