tf.random_normal()函数用于从服从指定正太分布的数值中取出指定个数的值。

tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

  •     shape: 输出张量的形状,必选
  •     mean: 正态分布的均值,默认为0
  •     stddev: 正态分布的标准差,默认为1.0
  •     dtype: 输出的类型,默认为tf.float32
  •     seed: 随机数种子,是一个整数,当设置之后,每次生成的随机数都一样
  •     name: 操作的名称

以下程序定义一个w1变量:

# -*- coding: utf-8 -*-)
import tensorflow as tf

w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1))

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    # sess.run(tf.initialize_all_variables())  #比较旧一点的初始化变量方法
    print w1
    print sess.run(w1)
输出:

<tf.Variable 'Variable:0' shape=(2, 3) dtype=float32_ref>
[[-0.81131822  1.48459876  0.06532937]
 [-2.4427042   0.0992484   0.59122431]]

变量w1声明之后并没有被赋值,需要在Session中调用run(tf.global_variables_initializer())方法初始化之后才会被具体赋值。

tf中张量与常规向量不同的是执行"print w1"输出的是w1的形状和数据类型等属性信息,获取w1的值需要调用sess.run(w1)方法。

posted on 2018-01-11 21:43  未雨愁眸  阅读(1210)  评论(0编辑  收藏  举报