【发布时间】:2017-01-12 21:00:37
【问题描述】:
我正在使用自动编码器。我的张量流图看起来像这样:(输入图像)--conv2d-->(压缩表示)--deconv2d-->(重构图像)。
我将压缩表示张量更改为 placeholder_with_default,以便我可以插入任何我想要的值并查看重构的内容。当 compressed representation 没有被输入时应该使用的默认值是 conv2d 的结果。
但是,优化器抱怨:
LookupError: gradient registry has no entry for: PlaceholderWithDefault
如何让图表知道在优化阶段只使用通常的梯度?当 压缩表示 不是占位符时,一切正常。
【问题讨论】:
-
如果你用占位符替换了部分网络,你为什么要使用优化器?我会假设你的网络已经训练过了。
-
我准备图表时认为它必须能够同时用于表示的优化和探索。训练后如何更改图的结构?我可以轻松地在占位符和计算部分之间切换回来,以便在训练和探索之间切换吗?
-
您可能需要考虑分别保存您的编码器、表示和解码器。或者您可以尝试构建一个单独的解码器网络并使用
get_variable()函数来重用您训练的变量。 -
您可以在创建图表后使用
tensorflow.contrib.graph_editor更改其结构 -
另外,您可以使用
gradient_override_map为占位符定义渐变
标签: python tensorflow autoencoder