我正在尝试为张量"faster_rcnn_resnet101_kitti"流对象检测API 训练一个预训练模型。
但是每次我尝试跑步
python3 train.py --logtostderr --train_dir='/training/' --pipeline_config_path='/training/faster_rcnn_resnet101_kitti.config'
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Traceback (most recent call last):
File "train.py", line 167, in <module>
tf.app.run()
File "/usr/local/lib/python3.5/dist- packages/tensorflow/python/platform/app.py", line 126, in run
_sys.exit(main(argv))
File "train.py", line 163, in main
worker_job_name, is_chief, FLAGS.train_dir)
File "/usr/local/lib/python3.5/dist-packages/object_detection-0.1-py3.5.egg/object_detection/trainer.py", line 211, in train
detection_model = create_model_fn()
File "/usr/local/lib/python3.5/dist-packages/object_detection-0.1-py3.5.egg/object_detection/builders/model_builder.py", line 96, in build
add_summaries)
File "/usr/local/lib/python3.5/dist-packages/object_detection-0.1-py3.5.egg/object_detection/builders/model_builder.py", line 272, in _build_faster_rcnn_model
frcnn_config.inplace_batchnorm_update)
AttributeError: 'FasterRcnn' object has no attribute 'inplace_batchnorm_update'
Run Code Online (Sandbox Code Playgroud)
我也有这个错误,对我来说是因为我从TF模型存储库中提取了最后的更新后没有重新编译.proto文件。
要重新编译(在Linux上):
# From tensorflow/models/research/ folder
protoc object_detection/protos/*.proto --python_out=.
Run Code Online (Sandbox Code Playgroud)
我假设失败的代码尝试inplace_batchnorm_update从更快的rcnn配置中读取属性/字段,(较早的版本中不存在)(假定)。希望对您有帮助。
我的版本是:tensorflow-gpu 1.7.0,并让TF模型提交哈希77d3bbefeb33e89bfa1eee707151e5d794d1222b,并显示消息“从hsm207 / patch-3修订错误中合并拉请求#3888”。
从我自己的经验中我知道,与Windows相比,在Linux中将上述文件编译成单一文件很容易。对于Windows,可以通过以下方法来简化此过程:
在本期中,davemers0160共享了一个可在Windows上编译的脚本。
只需将此文件另存为.bat-file:
@echo off
setlocal
echo Searching for new .proto files...
for %%F in (object_detection\protos\*.proto) do (
echo %%F
protoc %%F --python_out=.
)
echo Complete!
Run Code Online (Sandbox Code Playgroud)
从上述相同的文件夹中运行该文件。由于问题是在Linux中出现的,因此我刚刚将其添加到底部,以防Windows用户也来阅读此内容。