关于tf.Variable()与tf.get_variable()的区别,很多博客都在罗列传入参数的不同,然后推荐使用tf.get_variable(),因为更适合复用。本人才疏学浅,看不出参数不同怎么就会影响复用。通过阅读这篇博客,加以自己的理解,阐述两者的区别和为何tf.get_variable()更适合参数复用。
tf.Variable()
对于tf.Variable()定义的变量,如x = tf.Variable(3, name="x")。当多次调用x时,系统会自动给变量编号x,x_1,x_2来解决命名冲突。例如,定义如下的加法:
def add_function():
x = tf.Variable(3, name="x_scalar")
y = tf.Variable(2, name="y_scalar")
addition = tf.add(x, y, name="add_function")
print("=== checking Variables ===")
print("x:", x, "\ny:", y, "\n")
return addition
并分两次调用该函数:
result1 = add_function()
result2 = add_function()
得到的结果是:
=== checking Variables ===
x: <tf.Variable 'x_scalar:0' shape=() dtype=int32_ref>
y: <tf.Variable 'y_scalar:0' shape=() dtype=int32_ref>
=== checking Variables ===
x: <tf.Variable 'x_scalar_1:0' shape=() dtype=int32_ref>
y

最低0.47元/天 解锁文章
7983

被折叠的 条评论
为什么被折叠?



