我想训练多个CPU,所以我运行这个命令
C:\用户\溶液\桌面\ Tensorflow \研究>蟒 object_detection / train.py --logtostderr --pipeline_config_path = C:\ Users \ solution \ Desktop \ Tensorflow \ myFolder \ power_drink.config --train_dir = C:\ Users \ solution \ Desktop \ Tensorflow \ research \ object_detection \ train --num_clones = 2 --clone_on_cpu = True
我收到了以下错误
回溯(最近一次调用最后一次):文件" object_detection / train.py", 第169行,in tf.app.run()文件" C:\ Users \ solution \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ tensorflow \ python \ platform \ app.py", 第124行,在运行中 _sys.exit(main(argv))File" object_detection / train.py",第165行,主要 worker_job_name,is_chief,FLAGS.train_dir)文件" C:\ Users \ solution \ Desktop \ Tensorflow \ research \ object_detection \ trainer.py", 246行,在火车上 clones = model_deploy.create_clones(deploy_config,model_fn,[input_queue])文件 " C:\用户\溶液\桌面\ Tensorflow \研究\苗条\部署\ model_deploy.py&#34 ;, 第193行,在create_clones中 outputs = model_fn(* args,** kwargs)File" C:\ Users \ solution \ Desktop \ Tensorflow \ research \ object_detection \ trainer.py", 第158行,在_create_losses中 train_config.merge_multiple_label_boxes)ValueError:没有足够的值来解包(预期7,得0)
如果我将num_clones设置为1或省略它,它会正常工作。 我也尝试设置--ps_tasks = 1,它没有帮助
任何建议都将不胜感激
答案 0 :(得分:0)
我通过稍微更改原始配置中的一个参数来解决此问题:
...
train_config: {
fine_tune_checkpoint: "C:/some_path/model.ckpt"
batch_size: 1
sync_replicas: true
startup_delay_steps: 0
replicas_to_aggregate: 8
num_steps: 25000
...
}
...
更改参数replicas_to_aggregate: 1
或设置sync_replicas: false
都可以解决我的问题,因为我只在一张图形卡上训练,没有任何副本(就像在TPU上训练时一样) )。
答案 1 :(得分:0)
您没有提及要训练的模型类型-如果像我一样,您正在使用TensorFlow对象检测API示例(Faster-RCNN-Inception-V2)中的默认模型,那么num_clones
应该等于batch_size
。但是,我使用的是GPU,但是当我从一个克隆复制到两个克隆时,我看到了类似的错误,因此在训练配置文件中设置batch_size: 2
是解决方案。