首页 文章

[Tensorflow] [对象检测]尝试使用--num_clones = 2训练时的ValueError

提问于
浏览
2

我想在多个CPU上训练,所以我运行这个命令

C:\ Users \ solution \ Desktop \ Tensorflow \ research> python 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

我得到以下错误

Traceback(最近一次调用最后一次):文件“object_detection / train.py”,第169行,在tf.app.run()文件“C:\ Users \ solution \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ tensorflow \ python \ platform \ app.py“,第124行,在运行_sys.exit(main(argv))文件”object_detection / train.py“,第165行,在主worker_job_name中,is_chief,FLAGS.train_dir )文件“C:\ Users \ solution \ Desktop \ Tensorflow \ research \ object_detection \ trainer.py”,第246行,in train clones = model_deploy.create_clones(deploy_config,model_fn,[input_queue])文件“C:\ Users \ solution \ Desktop \ Tensorflow \ research \ slim \ deployment \ model_deploy.py“,第193行,在create_clones中输出= model_fn(* args,** kwargs)文件”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这没有帮助

任何意见,将不胜感激

1 回答

  • 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上训练时那样) .

相关问题