[英]tensorflow initialize variable error
眾所周知,有多種方法可以在 tensorflow 中初始化變量。 我嘗試了一些結合圖形定義的東西。 請參閱下面的代碼。
def Graph1a():
g1 = tf.Graph()
with g1.as_default() as g:
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul( matrix1, matrix2, name = "product")
sess = tf.Session( graph = g )
sess.run(tf.global_variables_initializer())
return product
def Graph1b():
g1 = tf.Graph()
with g1.as_default() as g:
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul( matrix1, matrix2, name = "product")
sess = tf.Session( graph = g )
sess.run(tf.initialize_all_variables())
return product
def Graph1c():
g1 = tf.Graph()
with g1.as_default() as g:
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul( matrix1, matrix2, name = "product")
with tf.Session( graph = g ) as sess:
tf.global_variables_initializer().run()
return product
為什么Graph1a()
和Graph1b()
不會返回產品,而Graph1c()
呢? 我認為這些陳述是等效的。
問題是global_variables_initializer
需要與與會話相同的圖相關聯。 在Graph1c
發生這種情況是因為global_variables_initializer
在會話的 with 語句的范圍內。 為了讓Graph1a
工作,它需要像這樣重寫
def Graph1a():
g1 = tf.Graph()
with g1.as_default() as g:
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul( matrix1, matrix2, name = "product")
init_op = tf.global_variables_initializer()
sess = tf.Session( graph = g )
sess.run(init_op)
return product
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.