Google Cloud ML中的超参数指标应包含`val`前缀吗?

时间:2018-09-24 00:19:23

标签: keras google-cloud-ml hyperparameters

在为Google Cloud ML定义超参数指标时,我可以使用mean_squared_error,但是如果我想比较验证集的准确性,我应该使用val_mean_squared_error吗?还是它自己完成?

这是示例hptuning配置:

trainingInput:
  ...
  hyperparameters:
    goal: MINIMIZE
    hyperparameterMetricTag: ???mean_squared_error

这是合适的调用:

history = m.fit(train_x, train_y, epochs=epochs, batch_size=2048,
                         shuffle=False,
                         validation_data=(val_x, val_y),
                         verbose=verbose,
                         callbacks=callbacks)

由于我要传递验证数据和Keras,因此我不确定是否应该使用val_mean_squared_error

1 个答案:

答案 0 :(得分:0)

答案是:如果您(I)希望Google Cloud ML超参数调整在使用Keras时使用VALIDATION指标而不是训练指标,则需要指定val_mean_squared_error(或val_accuracy等)

如果您坚持使用accuracymean_squared_error,则会使Google Cloud ML调整过程偏向于选择过度拟合模型。为了避免在搜索参数时过度拟合,您应该创建自己的度量标准(如注释中所述),或者将fit方法与验证集结合使用,并使用val度量标准。


我已经更新了问题,以明确表示我正在使用Keras,它将自动创建val_mean_squared_error

要获得答案,我意识到我可以做一个简单的测试:在使用Keras的同时使用val_mean_squared_errormean_squared_error并使用验证参数集调用fit并将工作结果与报告的指标。