深度学习Tensor flow 学习回忆(一)
关于Tensorflow中的变量使用问题。
所应该掌握的有 :
1、变量的几种定义方法
2、变量的初始化和使用
一、变量的定义
方法一:tf.Variable
tf.Variable.init(initial_value, trainable=True, collections=None, validate_shape=True, name=None)
具体实现
import tensorflow as tf
v = tf.Variable(tf.constant([[1,0,3],[2,3,4]]))
v2 = tf.Variable(tf.random_normal((2,3),stddev=0.1,seed=2))
v3 = tf.Variable(tf.zeros([3,3]))
解析:
第一种方法定义变量,可以定义常量如:v,也可以定义随机数,如v2,
常用的分布有:
输入参数: shape, 标准差,随机种子数(保证随机一致)
- tf.random_normal((row,col),std=1,seed=2)
- tf.truncated_normal((row,col),std=1,seed=2)
二、变量的使用
所有变量在使用前必须进行初始化,才可以,初始化分为全局初始化和单个初始化,而不管哪种初始化,必须借助会话,Session来进行,
tf.Session(变量.initializer)
单个变量使用如下所示:
定义一个Session,接着run( 变量.initializer)即可。
初始化后,查看变量数值,则Session.run(变量)
g = tf.Variable(tf.random_normal([2,3],stddev=2))
temp =tf.Session()
init = g.initializer
temp.run(init)
temp.run(g)
结果如下
array([[-0.96298575, 0.1976302 , 1.98015869],
[-0.09323252, 0.54463059, -3.46403217]],
dtype=float32)
一次使用多个变量
temp = tf.InteractiveSession()
可以将temp会话,作为全局默认会话,定义之后,则可以对各个变量、常量进行操作,操作方式是: .run() .eval()等等。
import tensorflow as tf
# 全局
temp = tf.InteractiveSession()
# 定义变量
weight = tf.Variable(tf.random_normal([3,3],
stddev=2))
# 变量初始化创建
init_var = tf.global_variables_initializer()
# 初始化
init_var.run()
print(temp.run(weight))
weight.eval()
结果如下:
Out[27]:
[[-0.82149386 -2.55897689 1.25945139]
[-0.18189526 -0.25037572 -0.87734908]
[ 0.40856707 -1.21324348 1.51822197]]
array([[-0.19481958, -2.27363968, -4.94583416],
[-0.80519593, 2.04668927, 0.8613655 ],
[-0.57223797, -2.1343832 , -1.51089489]],
dtype=float32)