tensorflow中变量如何赋值及初始化系统讲解

Tensorflow中的变量初始化有两类方法:

  1. 使用xxxx()方法生成一个Tensor, 将这个Tensor作为tf.Variable()中的initial_value参数的入参, 来初始化这个变量;
  2. 使用xxxx_initializer()创建一个初始化方法, 指明一种初始化的方法, 但并不生成具体的Tensor, 使用在tf.get_variable()tf.variable_scope()等方法中, 其中的initializer参数指定为初始化方法, 则在环境中创建或获取的变量都将使用这个方法进行初始化.
import tensorflow as tf
# 创建变量的3种方式

# 方式1
# tf.Variable(Tensor)
a = tf.Variable(tf.random_uniform(shape=[2,2], minval=0.0, maxval=1.0, dtype=tf.float32), name="a")

# 方式2
# tf.get_varizble(name=, shape=, initializer=)
b = tf.get_variable("b",
                    shape=[2,2],
                    initializer=tf.truncated_normal_initializer(mean=0.0, stddev=1.0, dtype=tf.float32))

# 方式3
# 与方式2类似,只是将initializer写到了variable_scope中
with tf.variable_scope("variable___scope", initializer=tf.truncated_normal_initializer(mean=10.0, stddev=1.0, dtype=tf.float32)):
    c = tf.get_variable("c", shape=[2,2])

with tf.Session() as sess:
    # writer = tf.summary.FileWriter("logs_test", sess.graph)
    sess.run(tf.global_variables_initializer())
    print("a:\n", a.eval())
    print("b:\n", b.eval())
    print("c:\n", c.eval())
a:
 [[0.19286323 0.46955955]
 [0.46323264 0.66223764]]
b:
 [[ 1.1223104  1.703637 ]
 [ 1.9612012 -0.4318326]]
c:
 [[10.308898  9.647053]
 [ 8.317413 11.491129]]

tensorboard如图
在这里插入图片描述
参考文献
https://blog.csdn.net/qq_39037910/article/details/72954176

猜你喜欢

转载自blog.csdn.net/lllxxq141592654/article/details/85308703