溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

TensorFlow如何生成常量、序列和隨機(jī)值

發(fā)布時(shí)間:2021-06-24 14:13:14 來(lái)源:億速云 閱讀:284 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)TensorFlow如何生成常量、序列和隨機(jī)值,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

TensorFlow 生成 常量、序列和隨機(jī)值

生成常量

tf.constant()這種形式比較常見(jiàn),除了這一種生成常量的方式之外,像Numpy一樣,TensorFlow也提供了生成集中特殊的常量的函數(shù):

tf.zeros(shape, dtype=tf.float32, name=None)

三個(gè)參數(shù)的意思顯而易見(jiàn),返回指定形狀的全零張量

tf.zeros_like(tensor, dtype=None, name=None, optimizer=True) 與函數(shù)的名字一致,傳入一個(gè)張量,最后返回一個(gè)張量,與傳入的張量擁有一樣的形狀和數(shù)據(jù)類型,也可以自己傳入dtype指定數(shù)據(jù)類型

tf.ones() 和tf.ones_like()與之前的函數(shù)對(duì)應(yīng)一致

tf.fill(shape, value, name=None) 返回填滿指定輸入的數(shù)值的張量,例如:

tf.fill([2,3],9)

返回的張量就是:

[[9 9 9]
 [9 9 9]]

生成序列

tf.linspace(start, stop, num, name=None)

函數(shù)名稱與Numpy中序列的函數(shù)一樣,只是參數(shù)部分進(jìn)行了簡(jiǎn)化,前兩個(gè)參數(shù)分別指定了開(kāi)始和結(jié)束的值,num指定了要生成的數(shù)量,最后則是名稱,例如:

a = tf.linspace(1.0, 10.0, 10, name='lin1')

輸出:

[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
tf.range(start, limit, delta, dtype=None, name=None)

例如:

a = tf.range(1, 5, 1)

輸出:

[1 2 3 4]

隨機(jī)張量

隨機(jī)值在TensorFlow中很重要,很多情況下的初始值往往會(huì)隨機(jī)值,常用的隨機(jī)值生成函數(shù)如下:

生成均勻分布的隨機(jī)張量

# 調(diào)用格式
random_uniform(
  shape,
  minval=0,
  maxval=None,  # 最大值以及最小值
  dtype=tf.float32,
  seed=None,   # 指定種子
  name=None
)
# 例如
a = tf.random_uniform([2,3], minval=1.0, maxval=5.0, dtype=tf.float32)
# 輸出
[[4.458698 4.091486 4.3704953]
 [3.893827 2.7951822 2.2381153]]

生成服從正態(tài)分布的隨機(jī)張量

# 調(diào)用格式
random_normal(
  shape,
  mean=0.0,   # 均值
  stddev=1.0,  # 標(biāo)準(zhǔn)差
  dtype=tf.float32,
  seed=None,
  name=None
)
a = tf.random_normal([2,3], mean=3.0, stddev=1.0, dtype=tf.float32)
[[3.65199  1.879906 2.1775374]
 [1.6041888 1.503772 2.704612 ]]

生成服從截?cái)嗾龖B(tài)分布的隨機(jī)張量

# 調(diào)用格式
tf.truncated_normal(
  shape,
  mean=0.0,
  stddev=1.0,
  dtype=tf.float32,
  seed=None,
  name=None
)

[[4.477414 2.9767075 2.377511 ]
 [2.7083392 4.2639837 2.497882 ]]

這個(gè)函數(shù)與正態(tài)分布的函數(shù)使用時(shí)一樣的,只是增加了 “截?cái)唷?也就是限制每個(gè)元素的取值,如果其平均值大于 2 個(gè)標(biāo)準(zhǔn)差的值將被丟棄并重新選擇 。

關(guān)于“TensorFlow如何生成常量、序列和隨機(jī)值”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI