2016-08-29 40 views
0

假設代碼是這樣的:如何在張量變量初始化後覆蓋張量變量?

sess.run(tf.initialize_all_variables()) 

    assign_op_0 = embedding_list[0].assign(tf.random_normal([35019, 32], stddev = 0.0)) 
    assign_op_1 = embedding_list[1].assign(tf.random_normal([35019, 32], stddev = 0.0)) 

    sess.run(assign_op_0) 
    sess.run(assign_op_1) 

embedding_list [0]和embedding_list [1]是已在代碼的第一行被初始化兩個變量。現在我想覆蓋一些新的值,所以我有以下四行代碼,但是,我不知道這是否正確。而且我甚至無法打印embedding_list [0]和embedding_list [1]的值。當我這樣做:

print(embedding_list[0].eval(session=sess.run)) 

它有這個錯誤:

Traceback (most recent call last): 
    File "/home/zhao/DeepQA-master/main.py", line 29, in <module> 
    chatbot.main() 
    File "/home/zhao/DeepQA-master/chatbot/chatbot.py", line 213, in main 
    print(embedding_list[0].eval(session=self.sess.run)) 
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/variables.py", line 437, in eval 
    return self._variable.eval(session=session) 
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 555, in eval 
    return _eval_using_default_session(self, feed_dict, self.graph, session) 
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 3494, in _eval_using_default_session 
    if session.graph is not graph: 
AttributeError: 'function' object has no attribute 'graph' 

回答

1

嘗試如下:

sess.run(tf.initialize_all_variables()) 
W_0 = tf.Variable(tf.random_normal([35019, 32], stddev = 0.0)) 
assign_op_0 = W_0.assign(embedding_list[0]) 
sess.run(assign_op_0)