Tensorflow:使用梯度下降来优化输入

时间:2016-09-13 08:32:45

标签: tensorflow

我有一个TensorFlow模型(卷积神经网络),我在一些输入数据上使用梯度下降(GD)成功训练过。

现在,在第二步中,我想提供一个输入图像作为初始化,然后使用GD在固定网络参数上对此输入图像进行优化。损失函数将是另一个,但这是一个细节。

所以,我的主要问题是如何将梯度下降算法告诉

  • 停止优化网络参数
  • 优化输入图像

第一种可能就是这样做的 Holding variables constant during optimizer

你们有关于第二点的想法吗?

我想我可以使用TF渐变功能自行重新编码渐变下降算法,但我的直觉感觉告诉我应该有一种更简单的方法,这也让我可以从更复杂的GD变体(Adam等)中受益。

4 个答案:

答案 0 :(得分:1)

不需要您自己的SDG实施。 TensorFlow提供所有功能:

request.get(target, function(error, response, body) {

    console.log(body);

    // you can get pagination, etc with yourObj.pagination, ...
    var yourObj = JSON.parse(body);
});

答案 1 :(得分:0)

  1. 使用tf.Variable
  2. 将图片表示为trainable=True
  3. 使用起始图像(初始猜测)初始化此变量
  4. 使用trainable=False的TF变量重新创建NN图,并使用tf.assign
  5. 从训练的NN图中复制权重
  6. 计算损失函数
  7. 将损失插入您想要的任何TF优化算法

答案 2 :(得分:0)

另一种替代方法是使用ScipyOptimizerInterface,它允许使用scipy的最小化器。这支持受约束的最小化。

答案 3 :(得分:0)

我正在寻找解决同一问题的方法,但是我的模型并不容易,因为我有一个LSTM网络,其中包含使用MultiRNNCell创建的单元,我认为不可能获得权重并克隆模型。网络。有什么解决方法可以让我计算输入的梯度吗?