2017-12-01 4 views
1

私はCNTKのpython APIを使用して、save_model関数を使用して保存したCNNを訓練しています。CNTK with python - 各レイヤーのアクティブ化

今度はネットワーク上で分析を実行したいと考えています。具体的には、各レイヤーのアクティベーションを見ていきたいと思います。もちろん、私はいくつかのデータに自分のネットワークを実行することができ、このようにIMGと呼ば:

model.eval(img) 

しかし、それは私だけの私のネットワークで最後レイヤの出力が得られます。以前のレイヤーから出力を得るための簡単な方法はありますか?

答えて

0

実は、そのタスクのために提供しても例があります:https://github.com/Microsoft/CNTK/tree/master/Examples/Image/FeatureExtraction

は、私はあなたに重要なステップについての簡単な概要を与えてみましょう:

重要なのは、あなたがしたいの、あなたのノードの名前です。出力を取得します。

# get the node in the graph of which you desire the output 
node_in_graph = loaded_model.find_by_name(node_name) 
output_nodes = combine([node_in_graph.owner]) 

# evaluate the node e.g. using a minibatch_source 
mb = minibatch_source.next_minibatch(1) 
output = output_nodes.eval(mb[features_si]) 

# access the values as a one dimensional vector 
out_values = output[0].flatten() 
desired_output = out_values[np.newaxis] 

基本的には、中間ノードを取得するという違いと同じように、基本的に同じことを行います。

関連する問題