2016-04-26 15 views
1

KerasのSequentialモデルのTheanoグラフ表現を印刷する方法はありますか?KerasのTheanoグラフ印刷

Elemwise{mul,no_inplace} [id A] '' 
|TensorConstant{2.0} [id B] 
|x [id C] 

theano.printing.debugprint(model) 

は私に(Theanoのチュートリアルから取られた)このような何かを与えるために:

model = Sequential() 

model.add(Dense(input_dim=100, 
       output_dim=50, 
       W_regularizer=l2(0.0001), 
       init='he_normal', 
       activation='tanh')) 

model.add(Dense(input_dim=50, 
       output_dim=1, 
       W_regularizer=l2(0.0001), 
       init='he_normal', 
       activation='sigmoid')) 

sgd = SGD(lr=0.01, decay=1e-7, momentum=.9) 
model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=["accuracy"]) 

は、私が実行したい:このような単純なモデルを考える

私はTheanoプロファイラの出力を理解するのに役立つグラフを得ることを望んでいます。

Kerasバージョン1.0、Theanoバージョン0.8.1。

答えて

1

他の誰かが似たようなことをしたい場合は、ここで私が見つけたアプローチがあります。

import theano 
for i in model.layers: 
    theano.printing.debugprint(i.input) 
    theano.printing.debugprint(i.output) 

それは与える:

dense_input_2 [id A] 
Elemwise{tanh,no_inplace} [id A] '' 
|Elemwise{add,no_inplace} [id B] '' 
    |dot [id C] '' 
    | |dense_input_2 [id D] 
    | |dense_4_W [id E] 
    |DimShuffle{x,0} [id F] '' 
    |dense_4_b [id G] 
Elemwise{tanh,no_inplace} [id A] '' 
|Elemwise{add,no_inplace} [id B] '' 
    |dot [id C] '' 
    | |dense_input_2 [id D] 
    | |dense_4_W [id E] 
    |DimShuffle{x,0} [id F] '' 
    |dense_4_b [id G] 
sigmoid [id A] '' 
|Elemwise{add,no_inplace} [id B] '' 
    |dot [id C] '' 
    | |Elemwise{tanh,no_inplace} [id D] '' 
    | | |Elemwise{add,no_inplace} [id E] '' 
    | | |dot [id F] '' 
    | | | |dense_input_2 [id G] 
    | | | |dense_4_W [id H] 
    | | |DimShuffle{x,0} [id I] '' 
    | |  |dense_4_b [id J] 
    | |dense_5_W [id K] 
    |DimShuffle{x,0} [id L] '' 
    |dense_5_b [id M]