2016-11-22 12 views
2

Kerasでは、以下のようにネットワークを定義することができます。各レイヤーの後にシェイプを出力する方法はありますか?例えば、私はあなたにかなりの印刷を与える、model.summary()を使用してなどネットアーキテクチャの各レイヤーの形状を印刷します

inputs = Input((1, img_rows, img_cols)) 
conv1 = Convolution2D(64, 3, 3, activation='relu', init='lecun_uniform', W_constraint=maxnorm(3), border_mode='same')(inputs) 
conv1 = Convolution2D(64, 3, 3, activation='relu', init='lecun_uniform', W_constraint=maxnorm(3), border_mode='same')(conv1) 
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1) 

conv2 = Convolution2D(128, 3, 3, activation='relu', init='lecun_uniform', W_constraint=maxnorm(3), border_mode='same')(pool1) 
conv2 = Convolution2D(128, 3, 3, activation='relu', init='lecun_uniform', W_constraint=maxnorm(3), border_mode='same')(conv2) 
pool2 = MaxPooling2D(pool_size=(2, 2))(conv2) 

答えて

0

https://keras.io/layers/about-keras-layers/

は、最も簡単な方法これである場合があります。

model.layers[layer_of_interest_index].output_shape 
+0

使い方について詳しく説明できますか?例えば、私はpool1の情報を印刷したいと思います。私はconfig = pool1.get_config()を試したが、うまくいかなかった。 – user288609

+0

が回答を編集しました。ありがとうございます –

5

、その後、inputsを定義する行の後inputsの形状をプリントアウトconv1を定義する行の後conv1の形状をプリントアウトしたいです。 layer.input_shape

from keras.utils.layer_utils import layer_from_config 

config = layer.get_config() 
layer = layer_from_config(config) 

出典:層は、単一​​のノード(すなわち、それは共有層ではない場合)を持っている場合は、経由してその入力テンソル、出力テンソル、入力形状と出力形状を得ることができます

0

完全なモデルとその依存関係のすべてを印刷するにはあなたもここで見ることができます:をあなたが唯一の層の形状を印刷したい場合は

from keras.utils.visualize_util import plot 
plot(model, to_file='model.png') 

は、あなたがこのような何かを行うことができます:

layer = model.layers[-1] 
print(layer.output._keras_shape) 

プリント

私はPNG形式としての私のモデルの可視化を保存するには、このコマンドを使用しました: (なし、1、224、224)#Nr。フィルタ、チャンネル、x_dim、y_dim

+0

ありがとうございます。特定のレイヤー(プール1)だけを印刷したい場合は、その方法を教えてください。 – user288609

+0

最も簡単な方法は、レイヤーに名前を付けてからmodel.get_layer( 'pool1')を使ってレイヤーを見つけることです。 –

関連する問題