tensorflow-随机数RandomState生成

本文深入探讨了numpy库中RandomState函数的使用,展示了如何通过设置不同的seed值来生成可重复的随机数矩阵,这对于需要控制随机性的科学计算和机器学习应用至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RandomState是numpy库中的一个函数,在调用的过程中要设置随机种子seed。其中seed的值会影响得到的值的效果,如果是seed相同的情况下得到的值是相同的。同时RandomState方法可以完全的取代numpy.random.seed()方法,下面开始用实例展示RandomState的使用

import numpy as np
for i in range(2):
    rand = np.random.RandomState(10)
    arrayA = rand.uniform(0, 1, (2, 3)) #生成两行三列的矩阵同时矩阵的值在[0,1]范围之内
    print arrayA
print "-------------------"
for i in range(2):
    rand = np.random.RandomState(10 + i)
    arrayA = rand.uniform(0, 1, (2, 3))
    print arrayA
    np.random.seed()

结果:

[[ 0.77132064  0.02075195  0.63364823]
 [ 0.74880388  0.49850701  0.22479665]]
[[ 0.77132064  0.02075195  0.63364823]
 [ 0.74880388  0.49850701  0.22479665]]
-------------------
[[ 0.77132064  0.02075195  0.63364823]
 [ 0.74880388  0.49850701  0.22479665]]
[[ 0.18026969  0.01947524  0.46321853]
 [ 0.72493393  0.4202036   0.4854271 ]]

实验结果显示当RandomState中的seed值相同时得到的矩阵值也相同。可以通过设置不同的seed值实现得到不同的矩阵值。
 

### TensorFlow 2 中生成随机数的方法 在 TensorFlow 2 中,可以使用多种函数来生成不同类型的随机数。以下是几种常用方法: #### 正态分布随机数 为了生成服从正态分布的随机数,可以调用 `tf.random.normal` 函数。此函数允许指定形状、均值以及标准差等参数。 ```python import tensorflow as tf normal_random_numbers = tf.random.normal( shape=[2, 3], mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name="normal_distribution" ) print(normal_random_numbers.numpy()) ``` 该段代码会创建一个二维张量,其中包含来自具有零均值和单位方差的标准正态分布的数据点[^1]。 #### 均匀分布随机数 对于希望获取均匀分布在特定区间的随机数值的情况,则应该采用 `tf.random.uniform` 方法。通过设置最小值 (`minval`) 和最大值 (`maxval`) 参数能够控制所期望的取值范围。 ```python uniform_random_numbers = tf.random.uniform( shape=[2, 3], minval=-1., maxval=1., dtype=tf.float32, seed=None, name="uniform_distribution" ) print(uniform_random_numbers.numpy()) ``` 这段脚本将会输出一个同样大小为 `[2, 3]` 的浮点型数组,其元素是从 `-1` 到 `1` 范围内的均匀分布样本[^2]。 #### 随机打乱顺序 如果需求是对现有数据集中的条目进行无序化处理的话,那么就可以利用 `tf.random.shuffle` 来实现这一点。它接受输入序列并返回一个新的被打乱版本。 ```python original_sequence = tf.constant([1., 2., 3., 4., 5.]) shuffled_sequence = tf.random.shuffle(original_sequence) print(shuffled_sequence.numpy()) ``` 上述例子展示了怎样把给定的一维向量重新排列成另一个次序不同的新向量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值