【问题标题】:How to use scipy.optimize.minimize within Keras model.compile?如何在 Keras model.compile 中使用 scipy.optimize.minimize?
【发布时间】:2019-12-12 20:19:11
【问题描述】:

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

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

【问题讨论】:

  • 请更具体一点:xy 是什么?它们是系数吗?它们是如何融入损失函数的?至于:“我想将 scipy.optimize.minimise 与 Keras 一起使用”不,你不能那样做。您需要使用 Keras 的内置优化器或基于(Keras/TF)张量操作定义新的优化器。
  • 我在问题中添加了更多细节。

标签: python-3.x keras scipy


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多