2017-10-06 9 views
3

이제는 A 모델을 교육했으며 두 모델은 A 인스턴스가 필요합니다. 그 중 하나는 고정되어 있고 출력 할 수 없기 때문에 또 다른 네트워크는 다음 네트워크에 대해 학습 할 수 있기 때문입니다. 나는 두 variable_scope A_trainA_untrain, 나는 훈련 사전 variable_scopeA_untrain에서 A 모델을 설계하고이 범위도 모델을 복원, 같은 코드 :tensorflow에서 특정 variable_scope 변수를 다른 특정 variable_scope로 복원하는 방법은 무엇입니까?

saver_untrain = tf.train.Saver(tf.get_collection(
            tf.GraphKeys.GLOBAL_VARIABLES, 
            'A_untrain')) 
saver_path = '~/models/model.ckpt' 
# here pre-train model A 
saver_untrain.save(sess, saver_path) 

는 지금은 같은 모델에게로 A 매개 변수를 복원해야 범위 A_train에서 동일한 모델이지만 ckpt 파일이 A_untrain/input_w1 인스 트림 A_train/input_w1과 같은 매개 변수를 복원하기 때문에 이전 코드를 따르지 못합니다. 내 문제에 대한 해결책이 있는지 아니면 더 나은 솔루션이 훈련 가능한지 두 가지 인스턴스를 만드는 것인지 알고 싶습니다. 또 다른 하나는 훈련 할 수 없습니다. 고마워.

EDIT_1 : 나는 내가 좋아하는 나의 필요의 코드를 사용 실현할 수 있습니다 알고

saver_train = tf.train.Saver({'A_untrain/input_w1': A_train.input_w1}) 

을하지만 내 변수 금액이 큰 경우는 비실 될 것입니다, 그래서 대신 복원 할 variable_scope를 사용할 필요가 특정 변수의 이름.

답변

0

마지막으로 numpy를 통해 해결책을 찾았습니다. 우리는 훈련 된 매개 변수를 '* .npy'형식으로 저장할 수 있습니다. 매개 변수를로드해야 할 때 np.load npy 파일을 호출 한 다음 Session에 tf.assign()을 호출하여 value를 할당 할 수 있습니다. 이는 variable_scope의 기능과 상관없이 작동합니다.

관련 문제