python - 回归问题的 Hyperas 损失函数
问题描述
我已经使用 Keras 构建了一个模型来解决回归问题。我想对此模型执行超参数优化。作为我使用的指标val_mean_absolute_error
。在示例中,仅涉及分类问题(可在https://github.com/maxpumperla/hyperas上获得)
validation_acc = np.amax(result.history['val_acc'])
print('Best validation acc of epoch:', validation_acc)
return {'loss': -validation_acc, 'status': STATUS_OK, 'model': model}
如何使此代码适应回归问题(val_mean_absolute_error
用作指标)?
解决方案
对于回归问题,我们通常不定义单独的指标,使用损失本身来评估模型性能(越低越好);因此,假设您将mae
其用作损失,并且您已将模型编译为
model.compile(loss='mae', optimizer={{choice(['rmsprop', 'adam', 'sgd'])}})
这就是您应该如何修改链接示例中的代码:
#get the lowest validation loss of the training epochs
validation_loss = np.amin(result.history['val_loss'])
print('Best validation loss of epoch:', validation_loss)
return {'loss': validation_loss, 'status': STATUS_OK, 'model': model}
确实有些人metrics=['mae']
在类似情况下添加了编译参数,但这是不必要的。
推荐阅读
- python - 将模型与 Keras 的功能 API 合并
- acumatica - Acumatica:打印时不同的报表设计
- java - 如何按对象内树形图中的第一个键对对象列表进行排序
- python - 如何找到包含特定类值的元素?
- aws-lambda - AWS Lambda 函数中的端点可以调用同一函数中的其他端点吗?
- javascript - 悬停关闭时如何关闭引导模式
- r - 有没有办法用 dplyr 一步一步总结和加入
- javascript - 如何使用 for 循环和 javascript map reduce functoins 将数组放入成对集合
- ios - 继承UIView并为新类创建实例时,不创建视图
- c++ - 令人困惑的 memcpy 行为,如何停止重叠