1、变量的创建
变量也是一种op,是一种特殊的张量,能够进行存储持久化(用于保存参数,系数等),它的值就是张量,默认被训练
tf.Variable(initial_ value=None,name=None, trainable=True) (name表示在可视化中显示的名字)
创建-一个带值initial _value的新变量,initial_ value初始值,可以是随机的值
- assign(value)
为变量分配一个新值,返回新值
- eval(session=None)
计算并返回此变量的值
- name 属性表示变量名字
1 import tensorflow as tf 2 import os 3 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #去掉警告,将警告级别提升 4 5 a = tf.constant([1,2,3,4,5]) 6 var = tf.Variable(tf.random.normal([2,3],mean=0.0,stddev=1.0)) #random.normal从正态分布中输出随机值,平均值0.0,标准差1.0 7 print(a) 8 print(var)
输出 :
Tensor("Const_1:0", shape=(5,), dtype=int32) <tf.Variable 'Variable:0' shape=(2, 3) dtype=float32_ref>
2、变量的初始化 (变量在进行run时,必须先要进行初始化)
没有进行初始化 1 import tensorflow as tf 2 import os 3 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #去掉警告,将警告级别提升 4 5 a = tf.constant([1,2,3,4,5]) 6 var = tf.Variable(tf.random.normal([2,3],mean=0.0,stddev=1.0)) #random.normal从正态分布中输出随机值,平均值0.0,标准差1.0 7 with tf.Session() as sess: 8 print(sess.run([a,var]))
输出:
Attempting to use uninitialized value Variable
添加一个初始化所有变量的op(tf.global_variables_initializer())在会话中开启
1 import tensorflow as tf 2 import os 3 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #去掉警告,将警告级别提升 4 5 a = tf.constant([1,2,3,4,5]) 6 var = tf.Variable(tf.random.normal([2,3],mean=0.0,stddev=1.0)) #random.normal从正态分布中输出随机值,平均值0.0,标准差1.0 7 8 #在打印var之前必须做一个显示的初始化 9 init_op = tf.global_variables_initializer() #不需要传入值 10 11 with tf.Session() as sess: 12 sess.run(init_op) #必须运行初始化op 13 print(sess.run([a,var]))
输出:
[array([1, 2, 3, 4, 5]), array([[-0.11310391, 1.3286809 , 0.06200764], [ 0.45713297, -0.33347377, 1.4530548 ]], dtype=float32)]
3、变量的作用域