首页 > 解决方案 > Tensorflow 超参数调整 - 未输出每个试验的指标

问题描述

我想在略微修改的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

我主要按照这里的说明进行操作。

标签: tensorflowmetricshyperparameters

解决方案


解决它。问题是

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

应该是

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

推荐阅读