tf.random.normal()

tf.random_normal()

  • 用途:

从 “正态分布” 中生成随机数

  • 正太分布:
  • 概念:

1.又名“高斯分布”,是一个常见的连续概率分布
2.若随机变量X服从一个数学期望为μ、方差为σ^2 的正态分布,记为N(μ,σ^2)
3.当期望为0,标准差为1时为标准正太分布

  • 数学表达式:
    在这里插入图片描述

  • 函数图像如图所示:

    在这里插入图片描述

  • python语法:

**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: 操作的名称

  • (1) shape=(3,3),dtype为默认类型float34
import tensorflow as tf

tf = tf.random.normal((3,3))
print(tf)
print(tf.dtype)
>>>  tf.Tensor(
               [[ 0.7568037   0.76599705 -0.9618746 ]
                [-0.40774775  0.6299737   1.0331134 ]
                [ 0.2801164  -0.01470783  0.18125445]], shape=(3, 3), dtype=float32)

>>>  <dtype: 'float32'>
  • (2) 将dtype由默认类型float32修改为float64
import tensorflow as tf

tf = tf.random.normal((3,3),dtype=tf.float64)
print(tf)
print(tf.dtype)
>>>  tf.Tensor(
               [[ 0.21275012  0.95105498 -0.90443889]
                [-1.62835943  1.17666347 -0.19029969]
                [ 0.05321206 -0.95185553  0.76990253]], shape=(3, 3), dtype=float64)
                
>>>  <dtype: 'float64'>
  • (3) 设定mean=0,studdev=2
import tensorflow as tf

tf = tf.random.normal((3,3),dtype=tf.float64,mean=0,stddev=2)
print(tf)
print(tf.dtype)
>>>  tf.Tensor(
               [[ 3.93224124 -0.14164949  1.3077799 ]
                [ 2.87169663  2.37923328  1.89279953]
                [ 2.73603371 -0.40775127  0.4801522 ]], shape=(3, 3), dtype=float64)

>>>  <dtype: 'float64'>
  • (3) 设定随机种子seed

    • 未设定随机种子,运行3次代码,发现每次生成的随机数不同
import tensorflow as tf

tf = tf.random.normal((3,3))
print(tf)
#  第一次
tf.Tensor(
[[ 1.7006174   1.2488154   1.4032307 ]
 [ 1.3743714  -1.0814087   0.21140715]
 [-1.4997168  -1.1225951  -0.6438281 ]], shape=(3, 3), dtype=float32)

# 第二次
tf.Tensor(
[[-0.7726681  -0.53940475 -0.9869719 ]
 [-1.3266131  -0.17771764 -1.3138798 ]
 [ 0.51728415 -0.38590327 -1.362033  ]], shape=(3, 3), dtype=float32)
 
# 第三次
tf.Tensor(
[[ 0.2407825   0.661185   -1.043917  ]
 [-0.2979386  -0.7310074  -0.6485838 ]
 [ 0.3239951  -0.4127123   0.26340994]], shape=(3, 3), dtype=float32)
  • 设定随机种子seed=5,运行3次代码,发现每次生成的随机数相同
import tensorflow as tf

tf = tf.random.normal((3,3),seed=5)
print(tf)
# 第一次
tf.Tensor(
[[-1.1780828  -0.7099414  -1.748158  ]
 [-0.49537227  0.24303888 -0.12631302]
 [-0.6639287  -0.49519837 -0.8939343 ]], shape=(3, 3), dtype=float32)

# 第二次
tf.Tensor(
[[-1.1780828  -0.7099414  -1.748158  ]
 [-0.49537227  0.24303888 -0.12631302]
 [-0.6639287  -0.49519837 -0.8939343 ]], shape=(3, 3), dtype=float32)

# 第三次
tf.Tensor(
[[-1.1780828  -0.7099414  -1.748158  ]
 [-0.49537227  0.24303888 -0.12631302]
 [-0.6639287  -0.49519837 -0.8939343 ]], shape=(3, 3), dtype=float32)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值