首頁 > 後端開發 > Python教學 > 如何存取 Keras 模型中的層輸出?

如何存取 Keras 模型中的層輸出?

DDD
發布: 2024-11-30 02:09:12
原創
971 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板