Я получаю сообщение об ошибке «Не удалось восстановить с контрольной точки».во время тренировки API оценки тензорного потока на AI-платформе (ml-engine) - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь выполнить настройку гиперпараметра на ai-engine для DNN-регрессора, используя тензор оценки потока api.Но после отправки работы, это показывает, что работа не удалась, и я получаю эту ошибку в деталях работы.

Может кто-то помочь?

Hyperparameter Tuning Trial #1 Failed before any other successful trials were completed. The failed trial had parameters: learning_rate=0.0019937718716419557, num-layers=2, first-layer-size=148, scale-factor=0.7910729020312588, .  The trial's error message was: The replica master 0 exited with a non-zero status of 1. 
  Traceback (most recent call last):
    [...]
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/saver.py", line 507, in _build_internal
      restore_sequentially, reshape)
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/saver.py", line 385, in _AddShardedRestoreOps
      name="restore_shard"))
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/saver.py", line 332, in _AddRestoreOps
      restore_sequentially)
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/training/saver.py", line 580, in bulk_restore
      return io_ops.restore_v2(filename_tensor, names, slices, dtypes)
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/gen_io_ops.py", line 1572, in restore_v2
      name=name)
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
      op_def=op_def)
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
      return func(*args, **kwargs)
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 3300, in create_op
      op_def=op_def)
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 1801, in __init__
      self._traceback = tf_stack.extract_stack()

  InvalidArgumentError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:

  tensor_name = dnn/hiddenlayer_0/bias; shape in shape_and_slice spec [148] does not match the shape stored in checkpoint: [117]
     [[node save/RestoreV2_1 (defined at /usr/local/lib/python3.5/dist-packages/tensorflow_estimator/python/estimator/estimator.py:1403) ]]

1 Ответ

0 голосов
/ 07 июля 2019

Похоже, что вы используете один и тот же выходной каталог для всех испытаний, и поэтому пробная версия № 1 пытается прочитать контрольную точку пробной № 2 (возможно, потому что она является самой последней в каталоге) и не работает, потому что архитектура отличается

Убедитесь, что вы используете разные выходные каталоги для каждого тренировочного прогона. Есть два способа сделать это:

  1. Используйте --job-dir в качестве выходного каталога.
  2. Добавьте пробный номер гиперпарама к выходному каталогу, который вы сейчас используете:

    output_dir = os.path.join (output_dir, json.loads (os.environ.get ('TF_CONFIG', '{}')) .get ('task', {}). Get ('trial', ''))

...