首页 >后端开发 >Python教程 >如何访问 Keras 模型中的层输出?

如何访问 Keras 模型中的层输出?

DDD
DDD原创
2024-11-30 02:09:12975浏览

How to Access Layer Outputs in a Keras Model?

访问 Keras 中的层输出

本文将指导您如何提取 Keras 模型中每一层的输出,类似于 TensorFlow 提供的功能。

问题:训练用于二元分类的卷积神经网络 (CNN) 后,希望获得每一层的输出。

答案:Keras 提供了一种简单的方法来实现此目的:

自定义提供的示例中的代码:

from keras import backend as K

# Define input and layer outputs
input = model.input
outputs = [layer.output for layer in model.layers]

# Create a function to evaluate the output
fn = K.function([input, K.learning_phase()], outputs)

# Testing
test_input = np.random.random(input_shape)[np.newaxis,...]
layer_outputs = fn([test_input, 1.])

# Print the layer outputs
print(layer_outputs)

注意: K.learning_phase() 参数对于像 Dropout 这样的层至关重要或 BatchNormalization 在训练和测试期间改变它们的行为。在模拟 Dropout 期间将其设置为 1,否则设置为 0。

优化:为了提高效率,建议使用单个函数来评估所有层输出:

fn = K.function([input, K.learning_phase()], outputs)

# Testing
test_input = np.random.random(input_shape)[np.newaxis,...]
layer_outputs = fn([test_input, 1.])

# Print the layer outputs
print(layer_outputs)

以上是如何访问 Keras 模型中的层输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn