Google Cloud ML 中的超参数指标应包含“val”前缀?
Hyperparameter metric in Google Cloud ML should contain the `val` prefix?
在为 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
。
答案是:如果您 (I) 希望 Google Cloud ML 超参数调优在使用 Keras 时使用验证指标而不是训练指标,则需要指定 val_mean_squared_error
(或 val_accuracy
等)。
如果您坚持 accuracy
或 mean_squared_error
,您会将 Google Cloud ML 调整过程偏向 select 过度拟合模型。为避免在搜索参数时出现过度拟合,您应该创建自己的指标(如评论中所述)或使用带有验证集的 fit
方法并使用 val
指标。
我已更新问题以明确说明我正在使用 Keras,它会自动创建 val_mean_squared_error
.
为了得到答案,我意识到我可以做一个简单的测试:同时使用 val_mean_squared_error
和 mean_squared_error
,同时使用 Keras 并使用验证参数集调用 fit
并比较作业结果与报告的指标。
在为 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
。
答案是:如果您 (I) 希望 Google Cloud ML 超参数调优在使用 Keras 时使用验证指标而不是训练指标,则需要指定 val_mean_squared_error
(或 val_accuracy
等)。
如果您坚持 accuracy
或 mean_squared_error
,您会将 Google Cloud ML 调整过程偏向 select 过度拟合模型。为避免在搜索参数时出现过度拟合,您应该创建自己的指标(如评论中所述)或使用带有验证集的 fit
方法并使用 val
指标。
我已更新问题以明确说明我正在使用 Keras,它会自动创建 val_mean_squared_error
.
为了得到答案,我意识到我可以做一个简单的测试:同时使用 val_mean_squared_error
和 mean_squared_error
,同时使用 Keras 并使用验证参数集调用 fit
并比较作业结果与报告的指标。