tensorflow - 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
我主要按照这里的说明进行操作。
解决方案
解决它。问题是
tf.contrib.estimator.add_metrics(classifier, compute_metrics)
应该是
classifier = tf.contrib.estimator.add_metrics(classifier, compute_metrics)
推荐阅读
- java - NonUniqueObjectException 更新中的休眠异常
- postgresql - 索引多租户数据库
- xamarin.forms - 从绑定属性中读取选定项
- python - Webdriver Selenium 无法导航到下一页
- python - 对某些位置的某些列表元素进行排序,其他位置保持不变
- linux - 如何在模式匹配后仅对多个模式中的一个模式进行 grep 行
- mysql - mariadb 错误 2026 (HY000): SSL 连接错误: 不支持的协议
- pandas - Python Pandas:添加两个数据框的缺失行并保留额外的列
- web - SearchLight 包是否使用连接池?
- json - 在 Flutter 中从 Web 获取 JSON