Keras でレイヤー出力を抽出する方法
深層学習モデルでは、分析や視覚化のために個々のレイヤーの出力にアクセスすると便利なことがよくあります。 。 Keras では、これはモデルのレイヤー属性を使用して実現できます。
レイヤー出力へのアクセス
特定のレイヤーの出力テンソルを取得するには、次を使用します。
layer_output = model.layers[layer_index].output
たとえば、次の 2 番目の層の出力を取得するにはモデル:
model = Sequential() model.add(Convolution2D(...)) model.add(Activation('relu'))
次を使用します:
layer_output = model.layers[1].output
すべてのレイヤー出力の抽出
すべてのレイヤーの出力を抽出するには:
layer_outputs = [layer.output for layer in model.layers]
レイヤーの評価中出力
指定された入力でレイヤーの出力を評価するには:
import keras.backend as K input_placeholder = model.input function = K.function([input_placeholder, K.learning_phase()], layer_outputs) test_input = np.random.random(input_shape) layer_outs = function([test_input, 1.])
K.learning_phase() は、異なる値を示す Dropout や BatchNormalization などのレイヤーの入力として使用する必要があることに注意してください。トレーニングおよびテスト中の動作。
最適化実装
効率性を高めるため、単一の関数を使用してすべてのレイヤー出力を抽出することをお勧めします:
functor = K.function([input_placeholder, K.learning_phase()], layer_outputs)
以上がKeras でレイヤー出力にアクセスする方法: 個々のレイヤー データを抽出して評価するためのガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。