2016-07-04 2 views
0

모델의 저장된 매개 변수를 tensorflow로 복원합니다. 다른 레이어와 다른 매개 변수 크기로 내 모델에 대한 테스트 차이 구성을 원합니다. 예를 들어 변경된 매개 변수 및 모델에서 TensorFlow의 검사 점을 복원하는 방법은 무엇입니까?

내가 이렇게 될 저장 내 매개 변수 중 하나를 경우 :이 복원하면 W_conv1 = weight_variable([7 , 7, 1, 64])

가 작동; ... W_conv1 = weight_variable([5 , 5, 1, 64]) 또는 W_conv1 = weight_variable([5 , 5, 1, 50]) 또는 W_conv1 = weight_variable([9 , 9, 1, 80]) 또는 :하지만이처럼 내 매개 변수를 변경합니다.

이제 새로운 설정으로 복원을 위해 저장된 체크 포인트를 사용하고 싶습니다. 매개 변수의 각 차원 크기가 변경되면 저장 매개 변수에서 무작위로 초기화되고 장소에 임의로 초기화됩니다.

이것을 수행하는 데는 텐서 흐름이 가능합니까?

+0

'tf.train.saver'에서'reshape = True'를 사용할 수 있습니까? – Tavakoli

답변

0

TensorFlow는 기존 변수 (tf.slice)의 조각을 얻고 연산자 (기존 슬라이스)를 값 (tf.assign)에 할당하는 연산자를 제공합니다. 기존 변수의 관련 슬라이스를 할당

  • 다른 형태의 새로운 변수를 만들고 검사 점에서 기존 변수를 복원

    • 무작위로
    • 초기화 : 그럼, 당신이 원하는 것은 다음 단계를 달성 할 수있다 이전 변수가 모양 [7, 7, 1, 64]를 가지고 있으며, 여러분의 새로운 변수 모양 [5, 5, 1, 64]이있는 경우 새 변수 예를 들어

    에, 여기에 새로운 수 변수에 기존 변수를 슬라이스하고 할당하는 조리법이다 e :

    # old_variable has the shape [7, 7, 1, 64] 
    new_variable = tf.Variable(np.random.rand(5, 5, 1, 64)) 
    assign_new_var = tf.assign(new_variable, old_variable([:5, :5, :, :])) 
    
  • +0

    이 코드'tf.assign (tf.Variable (tf.truncated_normal ([7200, 1000], stddev = std)), W_fc1)을 사용하면 다음과 같은 에러가 발생합니다 : ValueError : Shapes (7200, 1000) and 7200 , 150)은 호환되지 않습니다'W_fc1 = weight_variable ([7200, 150])' – Tavakoli

    +0

    '7200 x 1000' 변수에'7200 x 150' 텐서를 할당하려고하면 *와 * 결과 변수를'7200 x 100'으로 설정 한 경우 올바른 크기로 변환하려면 ['tf.pad()'] (https://www.tensorflow.org/api_docs/python/tf/pad)를 사용해야합니다 . – mrry

    관련 문제