好的!首先我们来了解一下这两个函数的共同点:它们都是用于初始化神经网络中的权值的。
现在让我们分别看一下这两个函数的用法。
tf.truncated_normal
tf.truncated_normal
可以生成截断正态分布随机数,即随机值生成的区间为 [μ-2σ, μ+2σ] 内的正态分布。其中,μ 为正态分布的均值,σ为正态分布的标准差。
函数定义:
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
入参解释:
- shape:输出张量的 shape。
- mean:正态分布均值,默认为 0。
- stddev:正态分布标准差,默认为 1.0。
- dtype:输出张量的类型。
- seed:随机种子。
- name:名称。
下面我们来看一个示例。
import tensorflow as tf
# 创建一个 10*10 的截断正态分布张量
x = tf.truncated_normal(shape=[10, 10], mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
# 打印张量
print(x)
输出结果:
Tensor("truncated_normal:0", shape=(10, 10), dtype=float32)
tf.random_normal
tf.random_normal
也是用于生成正态分布随机数,而不是截断正态分布。 同时,其生成随机数的方式与 tf.truncated_normal
不同,而是基于正态分布的平均值和标准偏差进行随机数生成。
函数定义:
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
入参解释:
- shape:输出张量的 shape。
- mean:正态分布均值,默认为 0。
- stddev:正态分布标准差,默认为 1.0。
- dtype:输出张量的类型。
- seed:随机种子。
- name:名称。
下面我们来看一个示例。
import tensorflow as tf
# 创建一个 10*10 的正态分布张量
x = tf.random_normal(shape=[10, 10], mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
# 打印张量
print(x)
输出结果:
Tensor("random_normal:0", shape=(10, 10), dtype=float32)
以上就是 tf.truncated_normal
和 tf.random_normal
的详细用法和示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tf.truncated_normal与tf.random_normal的详细用法 - Python技术站