我正在尝试复制此博客文章中的代码卷积神经网络如何看待世界
它在没有 dropout 层的 CNN 中运行良好,但是当有一个(或多个)dropout 层时,我不能直接使用这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()
方法解决了我的问题(我必须从一个新环境开始,并且在导入之后立即使用该方法)。