ホームページ >バックエンド開発 >Python チュートリアル >Keras モデルのレイヤー出力にアクセスして評価するにはどうすればよいですか?
Keras でレイヤー出力を取得する
Keras のようなフレームワークを使用してニューラル ネットワーク モデルを構築する場合、個々のレイヤーの出力にアクセスすると有益な場合があります分析またはデバッグの目的で。この記事では、Keras モデルの各層の出力を取得する方法を説明します。
畳み込みニューラル ネットワーク (CNN) アーキテクチャを使用した二項分類モデルが作成される次のコード例を考えてみましょう。
from keras.models import Sequential from keras.layers import Convolution2D, Activation, MaxPooling2D, Flatten, Dense, Dropout model = Sequential() # ... (Model architecture as provided in the question)
レイヤー出力へのアクセス
取得するにはモデル内の特定のレイヤーの出力には、model.layers[index].output 属性を利用できます。ここで、インデックスはモデルのアーキテクチャ内の層の位置を表します。
たとえば、最初の畳み込み層の出力にアクセスするには:
output = model.layers[0].output
すべての層の出力の取得
モデル内のすべての層の出力を取得するには、list を使用できます。理解:
outputs = [layer.output for layer in model.layers]
レイヤー出力の評価
前のステップから取得した出力を評価するには、Keras バックエンドによって提供される K.function メソッドを利用できます。
from keras import backend as K inputs = model.input functor = K.function([inputs, K.learning_phase()], outputs)
ここで、inputs はモデルの入力層を表し、 K.learning_phase() は、トレーニング中と評価中に異なる動作を示すレイヤー (ドロップアウトなど) に必要です。
最後に、指定された入力に対するレイヤーの出力を評価します:
test_input = np.random.random(input_shape)[np.newaxis,...] layer_outputs = functor([test_input, 1.])
評価の最適化
複数の関数を作成するのではなく、評価プロセスを最適化します。各レイヤーの出力ごとに、リスト内のすべての出力を返す単一の関数を作成できます。
functor = K.function([inputs, K.learning_phase()], outputs)
追加メモ
以上がKeras モデルのレイヤー出力にアクセスして評価するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。