2016-09-18 3 views
0

내 단계를 잘인지 아닌지 모르겠어요, 나중에 그들을 사용하는 몇 가지 변수 (무게와 편견)을 저장하려고하지만 난이 오류를 발견 한 :tensorflow에서 일부 변수를 저장

graph = tf.Graph() 

with graph.as_default(): 

    weights = { 
    'wc1_0': tf.Variable(tf.random_normal([patch_size_1, patch_size_1, num_channels, depth],stddev=0.1)), 
    'wc1_1': tf.Variable(tf.random_normal([patch_size_2, patch_size_2, depth, depth], stddev=0.1)), 
    ...... 
    } 

    biases = { 
    'bc1_0' : tf.Variable(tf.zeros([depth])), 
    'bc1_1' : tf.Variable(tf.constant(1.0, shape=[depth])), 
    ..... 
    } 

def model(data): 

    conv_1 = tf.nn.conv2d(data, wc1_0 , [1, 2, 2, 1], padding='SAME') 

    hidden_1 = tf.nn.relu(conv_1 + bc1_0) 

    pool_1 = tf.nn.max_pool(hidden_1,ksize = [1,5,5,1], strides= [1,2,2,1],padding ='SAME') 
    ....... 
    ....... 

weights_saver = tf.train.Saver(var_list=weights) 
biases_saver = tf.train.Saver(var_list=biases) 

with tf.Session(graph=graph) as sess: 

    sess.run() 
    for loop.... 
    ...... 
    save_path_weights = weights_saver.save(sess, "my_path") 
    save_path_biases = biases_saver.save(sess, "my_path") 

코드를 실행하면이 오류가 발생합니다.

conv_1 = tf.nn.conv2d(data, wc1_0 , [1, 2, 2, 1], padding='SAME') 
    NameError: global name 'wc1_0' is not defined 

conv_1에서 변수를 어떻게 할당 할 수 있습니까?

답변

1

두 개의 사전을 정의했습니다. 1은 가중치이고 1은 바이어스입니다. 사전에 Tensorflow 변수 개체를 채 웠습니다. 그런데 왜 사용하지 않으시겠습니까?

conv_1 = tf.nn.conv2d(data, weights['wc1_0'] , [1, 2, 2, 1], padding='SAME') 
    hidden_1 = tf.nn.relu(conv_1 + biases['bc1_0']) 
    pool_1 = tf.nn.max_pool(hidden_1,ksize = [1,5,5,1], strides= [1,2,2,1],padding ='SAME') 
관련 문제