一、何為tf.random_normal函數?
tf.random_normal函數是TensorFlow中內置的正態分布隨機生成函數。該函數可以生成均值為0、標準差為1的正態分布隨機數,也可以根據指定的均值和標準差生成指定分布的隨機數。
二、tf.random_normal函數的參數介紹
tf.random_normal函數的參數較為簡單,主要包括以下三個:
- shape:生成隨機數的形狀。可以是一個數字,表示生成一個數字,可以是一個一維數組,表示生成一個數組,也可以是一個二維數組,表示生成一個矩陣。
- mean:生成隨機數的均值。默認為0。
- stddev:生成隨機數的標準差。默認為1。
下面是一個具體的示例代碼,該代碼用於生成一個100個元素的一維正態分布隨機數。
import tensorflow as tf random_normal = tf.random_normal([100], mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) with tf.Session() as sess: print(sess.run(random_normal))
三、根據不同均值和標準差生成不同的分布
除了默認的標準正態分布,我們還可以根據實際需求生成均值和標準差不同的一些分布。
1、生成指定均值和標準差的正態分布隨機數
我們可以通過指定mean和stddev參數來生成均值和標準差不同的正態分布隨機數。
random_normal = tf.random_normal([100], mean=2.0, stddev=0.5, dtype=tf.float32, seed=None, name=None)
2、生成指定均值和標準差的截斷正態分布隨機數
我們可以通過設置truncate參數來生成均值和標準差不同的截斷正態分布隨機數,比如下面的示例代碼生成了一個均值為0,標準差為1,下限為-1,上限為1的截斷正態分布隨機數。
random_normal = tf.truncated_normal([100], mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
3、生成指定均值和標準差的正態分布概率密度函數
我們可以通過設置sample_dtype參數為tf.float32、seed為固定值以及不生成隨機數,來生成指定均值和標準差的正態分布概率密度函數。
random_normal = tf.random_normal([], mean=0.0, stddev=1.0, dtype=tf.float32, seed=1234, name=None, sample_dtype=tf.float32)
四、總結
tf.random_normal函數是TensorFlow中內置的正態分布隨機生成函數。使用該函數我們可以根據需要生成均值和標準差不同的正態分布隨機數、截斷正態分布隨機數以及正態分布概率密度函數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/199788.html