首页 > 解决方案 > 如何在 Keras model.compile 中使用 scipy.optimize.minimize?

问题描述

我有一个自定义损失 f = x + y,其中我有一些约束,因此在优化 f 时,x 应该在 (0.10, 0.2) 的范围内,y 在 (0.6, 0.1) 的范围内,y 是均方差在实际标签和预测标签之间,x 是不同类型的工作。模型不是基于 x 训练的;然而,它需要在预测中获得不同类型的工作进行优化。

我遇到了Scipy.optimize: how to restrict argument values on how scipy.optimize can be used with the bounds of a function. 但是,我的主要问题是我有一个自定义损失函数 total_loss(y_pred, y_true) 并且它与 Keras 一起使用“SGD”作为优化器作为损失函数。现在,为了合并参数的边界范围,我想将 scipy.optimize.minimise 与 Keras 一起使用。关于如何在 Keras 中的 model.compile 上使用 scipy.optimize 的任何方向?

标签: python-3.xkerasscipy

解决方案


您可以使用自定义训练循环。考虑到您的 keras 损失函数,训练循环可以收集梯度,然后您可以选择使用给定的约束来优化权重。

我已经实现了类似的东西;此代码调用 SciPy 最小化来优化模型的变量。


推荐阅读