Tensorflow 冻结模型但反向传播错误并更新输入层

Tensorflow freeze model but backpropagate error and update input layer

我试着解释一下我的目标。 对于经过训练的模型,我想 select 输出 class 并更新输入的图像。

  1. 将图像分配给 'input_layer'。
  2. 转发并计算 'output_layer' 与期望值 output/class 的误差。
  3. 将错误反向传播到 'input_layer',而不更新网络的权重和偏差。
  4. 使用反向传播误差更新输入层,即原始图像。

有什么提示吗?

您可以使用tf.gradients反向传播到输入层:

...
logits = run_net(image)
g = tf.gradients(logits[target_class], image)
image += g[0] * step
...

可以在 Deep Dream demo code 中找到这样做的好例子(例如参见 [​​=17=] 或 "Multiscale image generation."