2017-04-19 1 views
1

CNTK Python API에서 여러 출력 모델을 생성, 저장,로드 및 평가하기위한 권장 사항은 무엇입니까? (CNTK 2.0 RC1을 사용 중입니다.)CNTK Python API : 숨겨진 레이어/다중 출력 평가

런타임에 네트워크를 정의 할 때, eval 함수에 minibatch 사전을 전달하여 네트워크의 모든 계층을 쉽게 평가할 수 있습니다.

그러나 모델을 저장하고 다시로드 한 후에는 입력을 제공하여 출력 노드 만 평가할 수 있습니다 (파이썬 API에서 여러 출력을 정의하는 방법을 모르겠습니다). 나는 find_all_by_name 방법을 사용하여 모든 레이어에 액세스 할 수 있습니다,하지만 난 평가 방법을 사용하여 숨겨진 레이어를 평가하려고 할 때, 그것은 나에게 레이어의 즉시 입력보다는 관련 네트워크의 입력을 제공 할 것으로 예상 :

ValueError: No value specified for input Variable 'Output('Block1958_Output_0', [#], [1024 x 200])' of Function 'Dense: Output('Block1958_Output_0', [#], [1024 
x 200]) -> Output('conversation_vector', [#], [100])'. 

브레인 스크립트에 적용되는 주제에 대해서만 다음 문서를 찾았습니다. https://github.com/Microsoft/CNTK/wiki/CNTK-Evaluate-Hidden-Layers - 파이썬 API와 관련된 항목을 찾을 수 없습니다.

답변

1

model.outputs [0]을 변수하면 model.outputs [0] .owner 또는 as_composite (model.outputs [0] .owner) 소유자 의해서도 그 기능에 갈 수있다

as_composite(model.outputs[0].owner).eval(...) 
+0

'cntk을 사용하여 모델의 마지막 층을 준비하는

그래서이 시도 (에만 직접 입력을 나타내고, 매핑 루트 입력 변수를 나타낸다 대 복합 기능) 원시 함수이다. 결합하기 전에'(Zhou의 제안에 따라 다른 게시물에) 저장 한 다음'as _composite (model.outputs [0] .owner) .eval (...)'모델을로드 한 후 내 문제가 해결되었습니다. - 고마워요! –