在为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
。
答案 0 :(得分:0)
答案是:如果您(I)希望Google Cloud ML超参数调整在使用Keras时使用VALIDATION指标而不是训练指标,则需要指定val_mean_squared_error
(或val_accuracy
等)
如果您坚持使用accuracy
或mean_squared_error
,则会使Google Cloud ML调整过程偏向于选择过度拟合模型。为了避免在搜索参数时过度拟合,您应该创建自己的度量标准(如注释中所述),或者将fit
方法与验证集结合使用,并使用val
度量标准。
我已经更新了问题,以明确表示我正在使用Keras,它将自动创建val_mean_squared_error
。
要获得答案,我意识到我可以做一个简单的测试:在使用Keras的同时使用val_mean_squared_error
和mean_squared_error
并使用验证参数集调用fit
并将工作结果与报告的指标。