【问题标题】:TensorFlow - How to minimize function of one variable?TensorFlow - 如何最小化一个变量的函数?
【发布时间】:2023-03-26 13:24:01
【问题描述】:

另一位研究人员为我提供了一个经过全面训练的模型,该模型将输入作为占位符。将其视为函数f(x),我想找到x 以最小化我的距离度量(损失函数)dist(x, f(x))。这可能类似于两点之间的欧几里得距离。

我尝试使用 TensorFlow 的内置优化器函数。问题是tf.train.AdamOptimizer(1e-4).minimize(loss, var_list[input_placeholder]) 失败,抱怨input_placeholder 不是受支持的类型。因此,我无法为我的输入获取渐变。

当必须以这种方式指定输入时,如何在 TensorFlow 中优化函数?不幸的是,这些占位符没有首先通过Variable,我必须将该模型视为一个黑盒子。

【问题讨论】:

  • 我看过this相关问题,但它使用Variable来存储输入以进行优化。如果我可以将Variable 输入占位符,我可以做那里的答案。
  • 不是d(x - f(x))1 - df(x)吗?
  • 不,抱歉,d 是一些距离函数,而不是微分运算符。我会更新我的问题以明确说明

标签: python tensorflow keras


【解决方案1】:

使用this question 中详述的 Keras 函数式 API,我创建了一个没有偏差的密集层,位于给出的模型之前。将其输入保持为常量全 1 向量,我仅使用密集层中的 Variable 优化连接模型,将最优向量作为该层的输出

所有 TensorFlow Optimizer 子类都允许您使用 minimize,而只修改一组特定的 Variables,这是我从 Keras 中非常简单地得到的。

【讨论】:

  • 如果有人知道更好的解决方案,请告诉我。向 Keras 添加诸如“常量”层之类的东西可能也值得,以便更轻松地执行此类操作。
猜你喜欢
  • 2017-06-14
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-18
相关资源
最近更新 更多