TensorFlow变量详细介绍

来源:互联网 发布:淘宝账户被骇客入侵 编辑:程序博客网 时间:2024/06/05 18:06

TensorFlow中变量的作用主要是用来保存和更新神经网络中的参数,TensorFlow提供了tf.Variable函数来创建和初始化变量。TensorFlow提供了许多的随机生成函数和常数生成函数来初始化变量。

一、随机生成函数

1、tf.random_normal函数,随机参数分布使用的是正态分布,主要参数包括平均值、标准差、取值类型

import tensorflow as tfif __name__ == "__main__":    #初始化变量,random_normal函数初始化的随机数满足正态分布    # [2,3]代表初始化一个2行3列的矩阵    #mean代表矩阵元素的均值为1,默认设置为0    #stddev代表矩阵元素的标准差为2,默认设置为1.0    #dtype设置矩阵元素的类型    w = tf.Variable(tf.random_normal([2,3],mean=1,stddev=2,dtype=tf.float32))    sess = tf.Session()    #初始化所有变量    init = tf.initialize_all_variables()    sess.run(init)    print(w.eval(session=sess))    #[[ -1.72436237e-03   1.53843594e+00   2.15830660e+00]    # [ -5.76074362e-01   1.56232834e+00   4.78696251e+00]]
2、tf.truncated_normal函数,随机参数分布满足正态分布,当如果随机数偏离平均值超过2个标准差,那么这个数将会被重新分配一个随机数,主要参数包括平均值、标准差、取值类型
import tensorflow as tfif __name__ == "__main__":    #初始化变量,random_normal函数初始化的随机数满足正态分布    # [2,3]代表初始化一个2行3列的矩阵    #mean代表矩阵元素的均值为1,默认设置为0    #stddev代表矩阵元素的标准差为2,默认设置为1.0    #dtype设置矩阵元素的类型    w = tf.Variable(tf.truncated_normal([2,3],mean=1,stddev=2,dtype=tf.float32))    sess = tf.Session()    #初始化所有变量    init = tf.initialize_all_variables()    sess.run(init)    print(w.eval(session=sess))    #[[ 2.29723907  4.06425953  1.34471548]    # [ 1.18218589  3.2842207   2.13593292]]
3、tf.random_uniform函数,随机参数满足平均分布,主要参数包括最小值、最大值、取值类型
import tensorflow as tfif __name__ == "__main__":    #初始化变量,random_uniform函数分配的随机数满足平均分布    #minval设置随机数的最小值,设置为1,默认为0    #maxval设置随机数的最大值,设置为5,默认不设置    #dtype设置矩阵元素的类型,默认设置为float32    w = tf.Variable(tf.random_uniform([2,3],minval=1,maxval=5,dtype=tf.float32))    sess = tf.Session()    #初始化所有变量    init = tf.initialize_all_variables()    sess.run(init)    print(w.eval(session=sess))    #[[ 2.24365044  4.31799603  1.7274518 ]    # [ 3.4150033   2.43968344  4.81482315]]
4、tf.random_gamma函数,随机数满足Gamma分布,主要参数包括形状参数alpha(必须设置)、尺度参数beta、取值类型
import tensorflow as tfif __name__ == "__main__":    #初始化变量,random_gamma函数分配的随机数满足Gamma分布    #alpha形状参数,必须设置    #beta尺度参数    #dtype设置矩阵元素的类型,默认设置为float32    w = tf.Variable(tf.random_gamma([2,3],alpha=0,beta=1,dtype=tf.float32))    sess = tf.Session()    #初始化所有变量    init = tf.initialize_all_variables()    sess.run(init)    print(w.eval(session=sess))    #[[  1.17549435e-38   1.17549435e-38   1.17549435e-38]    # [  1.17549435e-38   1.17549435e-38   1.17549435e-38]]
二、常数生成函数

在使用TensorFlow初始化参数的时候,有时候我们需要将参数设置成一个常数,如初始化偏置项时。

1、tf.zeros函数,产生一个全为0的数组

import tensorflow as tfif __name__ == "__main__":    #初始化一个3维全为0的向量,数据类型为float32    w = tf.Variable(tf.zeros([3]),dtype=tf.float32)    sess = tf.Session()    #初始化所有变量    init = tf.initialize_all_variables()    sess.run(init)    print(w.eval(session=sess))    #[ 0.  0.  0.]
2、tf.ones函数,产生一个全为1的数组

    #初始化一个3维全为1的向量,数据类型为float32    w = tf.Variable(tf.ones([3]),dtype=tf.float32)
3、tf.fill函数,产生一个全部为给定数字的数组
    #初始化一个3维全为3的向量,数据类型为float32    w = tf.Variable(tf.fill([3],3.0),dtype=tf.float32)
4、tf.constant函数,产生一个给定值的常量
    #初始化一个3维向量为[1.,2.,3.],数据类型为float32    w = tf.Variable(tf.constant([1.,2.,3.]),dtype=tf.float32)
TensorFlow除了可以通过随机生成函数和常数生成函数初始化变量之外,还可以通过变量来初始化变量

    w = tf.Variable(tf.constant([1.,2.,3.]),dtype=tf.float32)    w1 = tf.Variable(w*2,dtype=tf.float32)




原创粉丝点击