Распределенное обучение Tensorflow не оценивает модель должным образом

Я использую асинхронное распределенное обучение в Tensorflow, используя стратегию сервера параметров. Несколько рабочих на нескольких процессорах с оценщиком в качестве отдельного узла.

Пример tf_config сервера параметров: индекс и тип могут отличаться для руководителя, работника и оценщика в других файлах TF_CONFIG.

TF_CONFIG={
"task": {
    "type": "ps",
    "index": 0
},
"cluster": {
    "chief": ["machine2:2222"],
    "worker": ["machine3:2223","machine4:2224"],
    "evaluator": ["machine5:2225"],
    "ps": ["machine1:2218"]
}

}

def main(unused_argv):
flags.mark_flag_as_required('model_dir')
flags.mark_flag_as_required('pipeline_config_path')
config = tf.estimator.RunConfig(model_dir=FLAGS.model_dir)

train_and_eval_dict = model_lib.create_estimator_and_inputs(
    run_config=config,
    hparams=model_hparams.create_hparams(FLAGS.hparams_overrides),
    pipeline_config_path=FLAGS.pipeline_config_path,
    train_steps=FLAGS.num_train_steps,
    sample_1_of_n_eval_examples=FLAGS.sample_1_of_n_eval_examples,
    sample_1_of_n_eval_on_train_examples=(
        FLAGS.sample_1_of_n_eval_on_train_examples))
estimator = train_and_eval_dict['estimator']
train_input_fn = train_and_eval_dict['train_input_fn']
eval_input_fns = train_and_eval_dict['eval_input_fns']
eval_on_train_input_fn = train_and_eval_dict['eval_on_train_input_fn']
predict_input_fn = train_and_eval_dict['predict_input_fn']
train_steps = train_and_eval_dict['train_steps']

if FLAGS.checkpoint_dir:
    if FLAGS.eval_training_data:
        name = 'training_data'
        input_fn = eval_on_train_input_fn
    else:
        name = 'validation_data'

    # The first eval input will be evaluated.
    input_fn = eval_input_fns[0]

    if FLAGS.run_once:
        estimator.evaluate(input_fn,
            num_eval_steps=None,
            checkpoint_path=tf.train.latest_checkpoint(
                FLAGS.checkpoint_dir))
    else:
        model_lib.continuous_eval(estimator, FLAGS.checkpoint_dir, input_fn, train_steps, name)
else:
    train_spec, eval_specs = model_lib.create_train_and_eval_specs(
        train_input_fn,
        eval_input_fns,
        eval_on_train_input_fn,
        predict_input_fn,
        train_steps,
        eval_on_train_data=False)

  # Currently only a single Eval Spec is allowed.
  tf.estimator.train_and_evaluate(estimator, train_spec, eval_specs[0])


if __name__ == '__main__':
    tf.app.run()

Я получаю несколько предупреждений:

W0828 00:03: 55.229441 140490069309248 estimator.py:1924] Модель_fn оценщика (.model_fn в 0x7fc5da9b5268>) включает аргумент params, но параметры не передаются в Оценщик.

./tensorflow/core/grappler/optimizers/graph_optimizer_stage.h:241] Не удалось запустить оптимизатор ArithmeticOptimizer, этап RemoveStackStridedSliceSameAxis Узел препроцессора /ResizeToRange/strided_slice_3. Ошибка: атрибут узла узла (Preprocessor/ResizeToRange/stack_2) выходит за границы:0


Но тренировка проходит нормально и оценка происходит. Но мои результаты оценки равны 0 все время.

создание индекса... индекс создан! создание индекса... индекс создан! Оценка каждого изображения... Оцените тип аннотации bbox DONE (t = 1,66 с). Накопление результатов оценки... СДЕЛАНО (t=0,52 с).

Средняя точность (AP) @[ IoU=0.50:0.95 | площадь = все | maxDets=100 ] = 0,000

Средняя точность (AP) @[ IoU=0.50 | площадь = все | maxDets=100 ] = 0,000

Средняя точность (AP) @[ IoU=0.75 | площадь = все | maxDets=100 ] = 0,000

Средняя точность (AP) @[ IoU=0.50:0.95 | площадь = маленькая | maxDets=100 ] = 0,000

Средняя точность (AP) @[ IoU=0.50:0.95 | площадь = средняя | maxDets=100 ] = 0,000

Средняя точность (AP) @[ IoU=0.50:0.95 | площадь = большая | maxDets=100 ] = 0,000

Среднее Напоминание (AR) @[ IoU=0.50:0.95 | площадь = все | maxDets= 1 ] = 0,000

Среднее Напоминание (AR) @[ IoU=0.50:0.95 | площадь = все | maxDets= 10 ] = 0,000

Среднее Напоминание (AR) @[ IoU=0.50:0.95 | площадь = все | maxDets=100 ] = 0,000

Среднее Напоминание (AR) @[ IoU=0.50:0.95 | площадь = маленькая | maxDets=100 ] = 0,000

Среднее Напоминание (AR) @[ IoU=0.50:0.95 | площадь = средняя | maxDets=100 ] = 0,000

Среднее Напоминание (AR) @[ IoU=0.50:0.95 | площадь = большая | maxDets=100 ] = 0,000

Любая помощь приветствуется. Заранее спасибо.

0 ответов

Другие вопросы по тегам