tf.variable_scope() and tf.name_scope()
https://blog.csdn.net/UESTC_C2_403/article/details/72328815
tf.variable_scope可以讓變量有相同的命名,包括tf.get_variable得到的變量,還有tf.Variable的變量
tf.name_scope可以讓變量有相同的命名,只是限于tf.Variable的變量
例如:
import tensorflow as tf; ?
import numpy as np; ?
import matplotlib.pyplot as plt; ?
?
with tf.variable_scope('V1'):
?? ?a1 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
?? ?a2 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
with tf.variable_scope('V2'):
?? ?a3 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
?? ?a4 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
??
with tf.Session() as sess:
?? ?sess.run(tf.initialize_all_variables())
?? ?print a1.name
?? ?print a2.name
?? ?print a3.name
?? ?print a4.name
輸出:
V1/a1:0
V1/a2:0
V2/a1:0
V2/a2:0
例子2:
import tensorflow as tf; ?
import numpy as np; ?
import matplotlib.pyplot as plt; ?
?
with tf.name_scope('V1'):
?? ?a1 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
?? ?a2 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
with tf.name_scope('V2'):
?? ?a3 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
?? ?a4 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
??
with tf.Session() as sess:
?? ?sess.run(tf.initialize_all_variables())
?? ?print a1.name
?? ?print a2.name
?? ?print a3.name
?? ?print a4.name
報錯:Variable a1 already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally defined at:
換成下面的代碼就可以執行:
import tensorflow as tf; ?
import numpy as np; ?
import matplotlib.pyplot as plt; ?
?
with tf.name_scope('V1'):
?? ?# a1 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
?? ?a2 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
with tf.name_scope('V2'):
?? ?# a3 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
?? ?a4 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
??
with tf.Session() as sess:
?? ?sess.run(tf.initialize_all_variables())
?? ?# print a1.name
?? ?print a2.name
?? ?# print a3.name
?? ?print a4.name
輸出:
V1/a2:0
V2/a2:0
?
總結
以上是生活随笔為你收集整理的tf.variable_scope() and tf.name_scope()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: github 创建文件夹
- 下一篇: 怎么去体内的湿热