2017-07-22 8 views
0

私は単純なニューラルネットワークを訓練し、自分のC++コードを使って推論を行うためにlasgneを使用しようとしています。私はlasgneによって生成された重みを使用しますが、私は良い結果を得ることができません。隠しレイヤーの出力や計算自体を印刷する方法はありますか?私はそれがフードの下で動作するかを知りたいので、C++で同じ方法で実装することができます。ラザーンの隠しレイヤの出力を印刷するには

答えて

1

私はLasagne + TheanoをPythonで手助けすることができます。あなたがC++で完全に働いているのか、Python + Lasagneの結果だけがC++コードに必要なのか、あなたの質問からは分かりません。

のは、あなたがこのような単純なネットワークを持って考えてみましょう:

l_in = lasagne.layers.InputLayer(...) 
l_in_drop = lasagne.layers.DropoutLayer(l_in, ...) 
l_hid1 = lasagne.layers.DenseLayer(l_in_drop, ...) 
l_out = lasagne.layers.DenseLayer(l_hid1, ...) 

あなたが特定の層の上にget_outputメソッドを呼び出すことにより、各層の出力を得ることができます:あなたが扱っているとき

lasagne.layers.get_output(l_in, deterministic=False) # this will just give you the input tensor 
lasagne.layers.get_output(l_in_drop, deterministic=True) 
lasagne.layers.get_output(l_hid1, deterministic=True) 
lasagne.layers.get_output(l_out, deterministic=True) 

ドロップアウトが発生してトレーニングの段階に入っていない場合は、メソッドをdeterministicパラメータをTrueに設定して呼び出すことを忘れないでください。これは、1つまたは複数のドロップアウト層が先行するすべての層に適用されます。

これがあなたの質問に答えることを願っています。

関連する問題