2017-12-01 23 views
1

CNTK의 python API를 사용하여 save_model 함수를 사용하여 저장 한 일부 CNN을 학습합니다.CNTK with python - 각 레이어에 대한 활성화

이제 네트워크에서 일부 분석을 실행하고 싶습니다. 특히 각 레이어의 활성화를 살펴보고 싶습니다.

model.eval(img) 

을하지만 그것은 단지 내 네트워크에 나에게 마지막 레이어의 출력을 제공합니다 : 물론 나는이 같은 IMG라는 일부 데이터에 내 네트워크를 실행할 수 있습니다. 이전 레이어에서 출력을 얻는 쉬운 방법이 있습니까? https://github.com/Microsoft/CNTK/tree/master/Examples/Image/FeatureExtraction

은 내가 당신에게 필수 단계에 대한 간단한 개요를 들어 보겠습니다 :

중요 당신이 원하는 어느 노드의 이름이됩니다

답변

0

사실, 그 작업에 대한 제공도 예를 들어이있다 출력을 얻으십시오.

# 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] 

기본적으로 중간 노드를 검색하는 차이점을 제외하면 기본적으로 동일한 작업을 수행합니다.