Tra*_*ccc 9 python machine-learning object-detection neural-network tensorflow
当使用当前版本的Tensorflow-Gpu(1.5)运行Tensorflow Object Detection API时,在尝试训练自定义图像集时会引发以下错误.
INFO:tensorflow:Scale of 0 disables regularizer.
INFO:tensorflow:Scale of 0 disables regularizer.
WARNING:tensorflow:From C:\tensorflow1\models\research\object_detection\trainer.py:228: create_global_step (from tensorflow.contrib.framework.python.ops.variables) is deprecated and will be removed in a future version.
Instructions for updating:
Please switch to tf.train.create_global_step
Traceback (most recent call last):
File "train.py", line 167, in <module>
tf.app.run()
File "C:\Users\Vic-10-3\AppData\Local\Continuum\anaconda3\envs\tensorflow1\lib\site-packages\tensorflow\python\platform\app.py", line 124, in run
_sys.exit(main(argv))
File "train.py", line 163, in main
worker_job_name, is_chief, FLAGS.train_dir)
File "C:\tensorflow1\models\research\object_detection\trainer.py", line 235, in train
train_config.prefetch_queue_capacity, data_augmentation_options)
File "C:\tensorflow1\models\research\object_detection\trainer.py", line 59, in create_input_queue
tensor_dict = create_tensor_dict_fn()
File "train.py", line 120, in get_next
dataset_builder.build(config)).get_next()
File "C:\tensorflow1\models\research\object_detection\builders\dataset_builder.py", line 138, in build
label_map_proto_file=label_map_proto_file)
File "C:\tensorflow1\models\research\object_detection\data_decoders\tf_example_decoder.py", line 110, in __init__
dct_method=dct_method),
TypeError: __init__() got an unexpected keyword argument 'dct_method'
Run Code Online (Sandbox Code Playgroud)
预期的行为是运行实际的训练,但显然有些东西与最新版本不兼容.
重现错误的说明:遵循教程并训练自定义数据集.
小智 6
此错误是由于文件tf_example_decoder.py与安装的Tensorflow不兼容造成的.
在文件模型/ research/object_detection/data_decoders/tf_example_decoder.py中:
第28行:
slim_example_decoder = tf.contrib.slim.tfexample_decoder
第104行:
self.items_to_handlers = {
fields.InputDataFields.image:
slim_example_decoder.Image(
image_key='image/encoded',
format_key='image/format',
channels=3,
dct_method=dct_method),....
.....
....
..
.
}
Run Code Online (Sandbox Code Playgroud)
slim_example_decoder.Image是tf.contrib.slim.tfexample_decoder.Image
在Tensorflow 1.5源代码tf.contrib.slim.tfexample_decoder.Image中没有dct_method参数.因此,当dct_method传递参数时,它会抛出错误.
一个简单的黑客就是不通过这个论点.因此,编辑tf_example_decoder.py第110行以删除dct_method=dct_method.我尝试了这个,它起作用,对训练没有任何影响.
| 归档时间: |
|
| 查看次数: |
3037 次 |
| 最近记录: |