Google Cloud ML Engine не возвращает объективные значения при настройке гиперпараметров

В результатах обучения для задания настройки гиперпараметров в Google Cloud ML Engine я не вижу значений цели, рассчитанных для каждого испытания. Результат обучения следующий:

    {
  "completedTrialCount": "4",
  "trials": [
    {
      "trialId": "2",
      "hyperparameters": {
        "learning-rate": "0.0010000350944297609"
      }
    },
    {
      "trialId": "3",
      "hyperparameters": {
        "learning-rate": "0.0053937227881987841"
      }
    },
    {
      "trialId": "4",
      "hyperparameters": {
        "learning-rate": "0.099948384760813816"
      }
    },
    {
      "trialId": "1",
      "hyperparameters": {
        "learning-rate": "0.02917661111653325"
      }
    }
  ],
  "consumedMLUnits": 0.38,
  "isHyperparameterTuningJob": true
}

Кажется, что задание настройки гиперпараметров выполняется правильно, и рядом с ним отображается зеленая галочка. Однако я ожидал, что увижу значение целевой функции для каждого испытания в результатах обучения. Без этого я не знаю, какое испытание лучше. Я попытался добавить ценность цели в сводный график следующим образом:

with tf.Session() as sess:
    ...
    final_cost = sess.run(tf.reduce_sum(tf.square(Y-y_model)), feed_dict={X: trX, Y:trY})
    summary = Summary(value=[Summary.Value(tag='hyperparameterMetricTag', simple_value=final_cost)])
    summary_writer.add_summary(summary)
    summary_writer.flush()

Я считаю, что выполнил все шаги, описанные в документации, чтобы настроить задание по настройке гиперпараметров. Что еще требуется, чтобы получить результат, позволяющий сравнивать различные испытания?


person Dan    schedule 01.05.2018    source источник
comment
Какой путь вы настроили для summary_writer? Есть ли шанс, что на самом деле значение равно 0,0?   -  person rhaertel80    schedule 01.05.2018
comment
Я настроил путь так: eval_path = os.path.join(args.jobDir, 'metric1') summary_writer = tf.summary.FileWriter(eval_path). args.jobDir - это сегмент GCS, в котором хранятся файлы заданий. Когда я запускаю код локально, значение final_cost не равно нулю.   -  person Dan    schedule 01.05.2018
comment
Не могли бы вы проверить, можете ли вы найти значение hyperparameterMetricTag на тензорной доске. И убедитесь, что вы указали одно и то же имя hyperparameterMetricTag (в вашем случае это hyperparameterMetricTag) в запросе на работу (HyperparameterSpec) и в вашем коде.   -  person lwz1992    schedule 02.05.2018
comment
Спасибо @ lwz1992. Я думаю, что проблема заключалась в несоответствии между значением hyperparameterMetricTag в файле конфигурации и тегом, используемым в Summary () в коде. Я установил их равными, и теперь я вижу objectiveValue в результатах обучения.   -  person Dan    schedule 04.05.2018
comment
Круто, перенес свой комментарий в ответ.   -  person lwz1992    schedule 04.05.2018


Ответы (1)


Не могли бы вы проверить, можете ли вы найти значение hyperparameterMetricTag на тензорной доске, чтобы убедиться, что вы правильно сообщаете метрику? И убедитесь, что вы указали одно и то же имя hyperparameterMetricTag (в вашем случае это hyperparameterMetricTag) в вашем запросе на работу (HyperparameterSpec) и вашем коде.

person lwz1992    schedule 04.05.2018