Настройка гиперпараметра Tensorflow - показатели для каждого испытания не выводятся - PullRequest
0 голосов
/ 30 мая 2019

Я хочу настроить гиперпараметр в слегка измененном DNNClassifier. Мне удалось запустить задание по настройке, и оно также успешно выполнено, но выходные данные не показывают окончательные показатели для каждого испытания. Вот как выглядит окончательный результат:

{
  "completedTrialCount": "2",
  "trials": [
    {
      "trialId": "1",
      "hyperparameters": {
        "myparam": "0.003"
      }
    },
    {
      "trialId": "2",
      "hyperparameters": {
        "myparam": "0.07"
      }
    }
  ],
  "consumedMLUnits": 1.48,
  "isHyperparameterTuningJob": true
}

как получить итоговую метрику для каждого испытания, чтобы определить, какое значение является лучшим?

Мой код выглядит следующим образом.

Мой DNNКлассификатор:

    classifier = DNNClassifier(
        feature_columns=feature_columns,
        hidden_units=hu,
        optimizer=tf.train.AdamOptimizer(learning_rate=lr),
        activation_fn=tf.nn.leaky_relu,
        dropout=dr,
        n_classes=2,
        config=self.get_run_config(),
        model_dir=self.model_dir,
        weight_column=weight_column
    )

    tf.contrib.estimator.add_metrics(classifier, compute_metrics)

def compute_metrics(labels, predictions):
    return {'my-roc-auc': tf.metrics.auc(labels, predictions)}

Спецификация гиперпараметров выглядит следующим образом.

trainingInput:
  hyperparameters:
    hyperparameterMetricTag: my-roc-auc
    maxTrials: 2
    enableTrialEarlyStopping: True
    params:
      - parameterName: myparam
        type: DISCRETE
        discreteValues:
          - 0.0001
          - 0.0005
          - 0.001
          - 0.003
          - 0.005
          - 0.007
          - 0.01
          - 0.03
          - 0.05
          - 0.07
          - 0.1

Я в основном следовал инструкциям здесь .

1 Ответ

0 голосов
/ 30 мая 2019

Исправлено.Проблема была

tf.contrib.estimator.add_metrics(classifier, compute_metrics)

Это должно было быть

classifier = tf.contrib.estimator.add_metrics(classifier, compute_metrics)
...