2016-06-18 8 views
2

모든 교육 기간 후에 모델을 저장하기 위해 tf.train.Saver()를 사용할 때 정확히 무엇이 저장되는지 궁금합니다. 이 파일은 Keras 모델에 익숙한 것에 비해 크게 보입니다. 현재 RNN은 각 저장시 900MB를 소비합니다. 보호기에게 학습 가능한 매개 변수 만 저장하도록 지시 할 수있는 방법이 있습니까? 나는 또한 모델의 일부만 저장하는 방법을 원할 것이다. 내가 정의한 변수를 numpy 형식을 사용하여 저장할 수는 있지만 RNN 클래스를 사용할 때는 직접 가중치에 액세스 할 필요가 없으며 코드를 살펴본 결과 get_weights와 같은 것이 아무것도 없다는 것을 알았습니다. .Tensorflow, tf.train.Saver로 저장된 내용은 무엇입니까?

답변

2

당신은 Savervar_list를 지정하지 않는 경우, 즉

+0

일부 변수는 훈련 할 수 없지만 보호기가 저장하기 때문에 불완전합니다. – Conchylicultor

1

saver=tf.train.Saver(var_list=tf.trainable_variables()) 그것은 기본적으로 모든 variables._all_saveable_objects()을 절약 할 수는 Saver 생성자에서 저장하는 변수의 목록을 제공 할 수 있습니다.

즉, Saver은 기본적으로 모든 전역 변수와 저장 가능한 변수를 저장합니다.

def _all_saveable_objects(): 
    """Returns all variables and `SaveableObject`s that must be checkpointed. 

    Returns: 
    A list of `Variable` and `SaveableObject` to be checkpointed 
    """ 
    # TODO(andreasst): make this function public once things are settled. 
    return (ops.get_collection(ops.GraphKeys.GLOBAL_VARIABLES) + 
      ops.get_collection(ops.GraphKeys.SAVEABLE_OBJECTS)) 
관련 문제