我正在尝试复制此博客文章How convolutional neural networks see the world
中的代码它在没有丢失层的CNN中运行良好,但是当有一个(或多个)丢失层时,我不能直接使用layer.output
行,因为它需要一个学习阶段。
当我使用推荐方法提取图层的输出时:
get_layer_output = K.function([model.layers[0].input, K.learning_phase()],
[model.layers[layer_index].output])
layer_output = get_3rd_layer_output([input_img, 0])[0]
问题在于我不能在input_img
中放置占位符,因为它需要“真实”数据,但如果我直接放入“真实”数据,则其余代码不起作用(造成损失) ,渐变和迭代需要一个占位符)。
我有办法让这项工作成功吗?
我正在使用Tensorflow后端。
编辑:我在执行构建模型之前使用K.set_learning_phase()
方法解决了我的问题(我必须从新环境开始,并且在导入后立即使用该方法)。