我想在稍微修改的DNNClassifier
中调整超参数。我能够运行调优作业,但它也成功完成了,但是输出未显示每次试用的最终指标。最终的输出如下所示:
{
"completedTrialCount": "2",
"trials": [
{
"trialId": "1",
"hyperparameters": {
"myparam": "0.003"
}
},
{
"trialId": "2",
"hyperparameters": {
"myparam": "0.07"
}
}
],
"consumedMLUnits": 1.48,
"isHyperparameterTuningJob": true
}
如何获得每个试验的最终指标,以便确定哪个值是最好的?
我的代码如下。
我的DNNClassifier:
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
我基本上遵循here的说明。
答案 0 :(得分:0)
解决了。问题是
totals = dat.groupby('Hours')['Amount'].sum()
dat_with_totals = dat.merge(totals, on='Hours')
应该是
tf.contrib.estimator.add_metrics(classifier, compute_metrics)