2016-11-01 2 views
0

написать простой код с tensorflow инструментарием, как следующие:Значение Ошибки tensorflow

import tensorflow as tf 
import numpy as np 
if __name__=="__main__": 
    inp = np.random.randint(1,3,(1,20,300,1)) 
    inputs = tf.convert_to_tensor(inp,dtype=tf.float32) 
    with tf.variable_scope('convpool1') as scope: 
     kernel = tf.get_variable('weights',[1,300,1,1],initializer=tf.truncated_normal_initializer(stddev=5e-2,dtype=tf.float32)) 
     conv1 = tf.nn.conv2d(inputs,kernel,[1,1,1,1],padding='VALID') 

    init = tf.initialize_all_variables() 
    with tf.Session() as sess: 
     sess.run(init) 
     with tf.variable_scope('convpool1'): 
      k_ = sess.run(kernel) 
      c1_ =sess.run(conv1) 

Это работает, когда я запускаю этот код в первый раз, но когда я запускаю же снова, это вызывает ошибку:

Variable convpool1/weights already exists, disallowed. Did you mean to set reuse=True in VarScope? 

И я перезапускаю IDE (spyder), запустите этот код, он снова работает. Что может быть причиной этой ошибки и как я могу ее решить? Спасибо за ваше время!

+0

Каждый раз, когда вы запускаете этот фрагмент, он добавляется к графику по умолчанию. Вы можете 'tf.reset_default_graph()' начать заново –

ответ

0

Использование

tf.reset_default_graph() 

в начале должно решить вашу проблему. Я не уверен на 100%, но подозреваемый spyder все еще имеет объект Graph (и, следовательно, область var уже создана).

+0

Ваш ответ подходит ко мне хорошо, спасибо вам большое! – LilHope

+0

Рад помочь, не забудьте принять ответ, если вы решили проблему. знак равно –