Tensorflow 冻结模型但反向传播错误并更新输入层
Tensorflow freeze model but backpropagate error and update input layer
我试着解释一下我的目标。
对于经过训练的模型,我想 select 输出 class 并更新输入的图像。
- 将图像分配给 'input_layer'。
- 转发并计算 'output_layer' 与期望值 output/class 的误差。
- 将错误反向传播到 'input_layer',而不更新网络的权重和偏差。
- 使用反向传播误差更新输入层,即原始图像。
有什么提示吗?
您可以使用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."
我试着解释一下我的目标。 对于经过训练的模型,我想 select 输出 class 并更新输入的图像。
- 将图像分配给 'input_layer'。
- 转发并计算 'output_layer' 与期望值 output/class 的误差。
- 将错误反向传播到 'input_layer',而不更新网络的权重和偏差。
- 使用反向传播误差更新输入层,即原始图像。
有什么提示吗?
您可以使用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."