0

我正在尝试复制此博客文章中的代码卷积神经网络如何看待世界

它在没有 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()方法解决了我的问题(我必须从一个新环境开始,并且在导入之后立即使用该方法)。

4

0 回答 0