tensorflow.variable_scope本质与变量共享解析

data1=tf.get_variable(“data1”,shape=[2])
上述python代码可以为&data1引用或者指针指向了一个tf.Variable对象,如果要使多个个python对象指向同一tf.Variable对象,需要通过variable_scope,
看如下代码:
import tensorflow as tf
import numpy as np

with tf.variable_scope(“abc”):
data1=tf.get_variable(“a”,shape=[2])
data2=tf.get_variable(“b”,shape=[2])

with tf.variable_scope(“abc”,reuse=True):
data3=tf.get_variable(“a”,shape=[2])

init = tf.global_variables_initializer()

with tf.Session() as sess:
sess.run(init)
print(data1)
print(data2)
print(data3)
输出为:
<tf.Variable ‘abc/a:0’ shape=(2,) dtype=float32_ref>
<tf.Variable ‘abc/b:0’ shape=(2,) dtype=float32_ref>
<tf.Variable ‘abc/a:0’ shape=(2,) dtype=float32_ref>
variable_scope可以理解为C++结构体,变量共享就是多个指针指向同一内存区域

猜你喜欢

转载自blog.csdn.net/qq_33345917/article/details/84993116
今日推荐