2016-08-14 3 views
7

검사 점에서 변수와 해당 상태를 어떻게 읽을 수 있습니까?Tensorflow. 검사 점의 변수 목록

자동 녹음기로 작업하고 있으며 검사 점에 네트워크, 즉 인코더, 디코더, 최적화 도구 등의 완전한 상태가 포함되어 있습니다. 인코딩을 속이고 싶습니다. 따라서 네트워크의 디코더 부분 만 내 평가 모드로 필요합니다.

더 추상적 인 방식으로 동일한 질문 : 다른 모델에서 재사용하기 위해 기존 검사 점에서 특정 변수 만 읽는 방법은 무엇입니까?

내 변수의 이름을 적절하게 지정해야합니까? 또는 같은 것을 얻을 수있는 방법이있다 :

w_init = read_from_state(state_location, var_name) 

def read_from_state(state_location, var_name): 
    # the magic goes here 
    pass 

답변

14

당신이 저장된 모든 변수를 볼 수 있습니다 checkpoint_utils.py에서 list_variables 방법이있다.

그러나 사용 사례의 경우 Saver로 복원하는 것이 더 쉽습니다. 검사 점을 저장할 때 변수의 이름을 아는 경우 새 보호기를 만들어 해당 이름을 새로운 이름의 새 Variable 개체로 초기화하도록 지시 할 수 있습니다. 이것은 CIFAR 예제에서 복원을 선택하는 데 사용됩니다 subset of variables. (지정된 경우, 또는 한) 자신의 콘텐츠와 함께 모든 체크 포인트 텐서를 인쇄 것이라고, 하우투

0

또 다른 방법으로 Choosing which Variables to Save and Restore를 참조하십시오

from tensorflow.python.tools import inspect_checkpoint as inch 
inch.print_tensors_in_checkpoint_file('path/to/ckpt', '', True) 
""" 
Args: 
    file_name: Name of the checkpoint file. 
    tensor_name: Name of the tensor in the checkpoint file to print. 
    all_tensors: Boolean indicating whether to print all tensors. 
""" 

그것은 항상 텐서의 내용을 인쇄합니다.

그리고, 우리가에있는 동안, 여기에 이전의 대답에 의해 제안, checkpoint_utils을 사용하는 방법입니다 :

from tensorflow.contrib.framework.python.framework import checkpoint_utils 
    var_list = checkpoint_utils.list_variables('path/to/ckpt') 
    for v in var_list: print(v)