tensorflow 张量
目錄標(biāo)題
- 張量
- 常量
- 變量
- 占位符
- 解讀分析
張量
張量,可理解為一個(gè) n 維矩陣,所有類型的數(shù)據(jù),包括標(biāo)量、矢量和矩陣等都是特殊類型的張量。
常量
聲明一個(gè)標(biāo)量常量:
一個(gè)形如 [1,3] 的常量向量可以用如下代碼聲明:
要?jiǎng)?chuàng)建一個(gè)所有元素為零的張量,可以使用 tf.zeros() 函數(shù)。這個(gè)語(yǔ)句可以創(chuàng)建一個(gè)形如 [M,N] 的零元素矩陣,數(shù)據(jù)類型(dtype)可以是 int32、float32 等:
還可以創(chuàng)建與現(xiàn)有 Numpy 數(shù)組或張量常量具有相同形狀的張量常量
創(chuàng)建一個(gè)所有元素都設(shè)為 1 的張量。下面的語(yǔ)句即創(chuàng)建一個(gè)形如 [M,N]、元素均為 1 的矩陣:
在一定范圍內(nèi)生成一個(gè)從初值到終值等差排布的序列:
相應(yīng)的值為 (stop-start)/(num-1)。例如:
從開(kāi)始(默認(rèn)值=0)生成一個(gè)數(shù)字序列,增量為 delta(默認(rèn)值=1),直到終值(但不包括終值):
TensorFlow 允許創(chuàng)建具有不同分布的隨機(jī)張量:
使用以下語(yǔ)句創(chuàng)建一個(gè)具有一定均值(默認(rèn)值=0.0)和標(biāo)準(zhǔn)差(默認(rèn)值=1.0)、形狀為 [M,N] 的正態(tài)分布隨機(jī)數(shù)組:
創(chuàng)建一個(gè)具有一定均值(默認(rèn)值=0.0)和標(biāo)準(zhǔn)差(默認(rèn)值=1.0)、形狀為 [M,N] 的截尾正態(tài)分布隨機(jī)數(shù)組:
要在種子的 [minval(default=0),maxval] 范圍內(nèi)創(chuàng)建形狀為 [M,N] 的給定伽馬分布隨機(jī)數(shù)組,請(qǐng)執(zhí)行如下語(yǔ)句:
要將給定的張量隨機(jī)裁剪為指定的大小,使用以下語(yǔ)句
這里,t_random 是一個(gè)已經(jīng)定義好的張量。這將導(dǎo)致隨機(jī)從張量 t_random 中裁剪出一個(gè)大小為 [2,5] 的張量。
很多時(shí)候需要以隨機(jī)的順序來(lái)呈現(xiàn)訓(xùn)練樣本,可以使用 tf.random_shuffle() 來(lái)沿著它的第一維隨機(jī)排列張量。如果 t_random 是想要重新排序的張量,使用下面的代碼:
隨機(jī)生成的張量受初始種子值的影響。要在多次運(yùn)行或會(huì)話中獲得相同的隨機(jī)數(shù),應(yīng)該將種子設(shè)置為一個(gè)常數(shù)值。當(dāng)使用大量的隨機(jī)張量時(shí),可以使用 tf.set_random_seed() 來(lái)為所有隨機(jī)產(chǎn)生的張量設(shè)置種子。以下命令將所有會(huì)話的隨機(jī)張量的種子設(shè)置為 54:
TIP:種子只能有整數(shù)值。
變量
它們通過(guò)使用變量類來(lái)創(chuàng)建。變量的定義還包括應(yīng)該初始化的常量/隨機(jī)值。下面的代碼中創(chuàng)建了兩個(gè)不同的張量變量 t_a 和 t_b。兩者將被初始化為形狀為 [50,50] 的隨機(jī)均勻分布,最小值=0,最大值=10:
注意:變量通常在神經(jīng)網(wǎng)絡(luò)中表示權(quán)重和偏置。
下面的代碼中定義了兩個(gè)變量的權(quán)重和偏置。權(quán)重變量使用正態(tài)分布隨機(jī)初始化,均值為 0,標(biāo)準(zhǔn)差為 2,權(quán)重大小為 100×100。偏置由 100 個(gè)元素組成,每個(gè)元素初始化為 0。在這里也使用了可選參數(shù)名以給計(jì)算圖中定義的變量命名:
在前面的例子中,都是利用一些常量來(lái)初始化變量,也可以指定一個(gè)變量來(lái)初始化另一個(gè)變量。下面的語(yǔ)句將利用前面定義的權(quán)重來(lái)初始化 weight2:
變量的定義將指定變量如何被初始化,但是必須顯式初始化所有的聲明變量。在計(jì)算圖的定義中通過(guò)聲明初始化操作對(duì)象來(lái)實(shí)現(xiàn):
每個(gè)變量也可以在運(yùn)行圖中單獨(dú)使用 tf.Variable.initializer 來(lái)初始化:
保存變量:使用 Saver 類來(lái)保存變量,定義一個(gè) Saver 操作對(duì)象:
saver = tf.train.Saver()
占位符
介紹完常量和變量之后,我們來(lái)講解最重要的元素——占位符,它們用于將數(shù)據(jù)提供給計(jì)算圖。可以使用以下方法定義一個(gè)占位符:
dtype 定占位符的數(shù)據(jù)類型,并且必須在聲明占位符時(shí)指定。在這里,為 x 定義一個(gè)占位符并計(jì)算 y=2*x,使用 feed_dict 輸入一個(gè)隨機(jī)的 4×5 矩陣:
解讀分析
需要注意的是,所有常量、變量和占位符將在代碼的計(jì)算圖部分中定義。如果在定義部分使用 print 語(yǔ)句,只會(huì)得到有關(guān)張量類型的信息,而不是它的值。
為了得到相關(guān)的值,需要?jiǎng)?chuàng)建會(huì)話圖并對(duì)需要提取的張量顯式使用運(yùn)行命令,如下所示:
參考:http://c.biancheng.net/view/1885.html
總結(jié)
以上是生活随笔為你收集整理的tensorflow 张量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【TensorFlow】简单解释----
- 下一篇: java 动画 制作_DragonBon