TensorFlow人工智能學(xué)習(xí)張量及高階操作示例詳解
一、張量裁剪
1.tf.maximum/minimum/clip_by_value()
該方法按數(shù)值裁剪,傳入tensor和閾值,maximum是把數(shù)據(jù)中小于閾值的變成閾值。minimum是把數(shù)據(jù)中大于閾值的變成閾值。clip_by_value需要傳入兩個(gè)閾值,會(huì)把數(shù)據(jù)裁剪到閾值中間。

2.tf.clip_by_norm()
按范數(shù)裁剪,傳入tensor和新的范數(shù)。通過裁剪范數(shù),可以進(jìn)行等比例放縮,使得梯度方向不變,但數(shù)值變小。通過這個(gè)方法可以對(duì)梯度進(jìn)行裁剪,一次性對(duì)所有的參數(shù)的范數(shù)進(jìn)行裁剪,并且保留方向。防止梯度爆炸,梯度彌散。

二、張量排序
1.tf.sort/argsort()
這兩個(gè)方法分別返回排序后的值,排序后的索引。有索引之后,可以通過gather方法對(duì)數(shù)據(jù)排序。

對(duì)于多維tensor,不指定軸的時(shí)候,默認(rèn)是對(duì)最后一個(gè)軸操作。

2.tf.math.topk()
返回前k大的那些數(shù)據(jù),以及索引。比如下面的例子,傳入a,2的意思是前兩個(gè)大的值。因此會(huì)對(duì)每一行,尋找前兩大的數(shù),以及對(duì)應(yīng)的索引,存到返回值中。

可以通過這個(gè)規(guī)則,求解topk的準(zhǔn)確率。比如下面的例子,對(duì)于兩條數(shù)據(jù),預(yù)測(cè)概率是prob,根據(jù)預(yù)測(cè)概率,得到這兩條數(shù)據(jù)最大值索引是2,1,而實(shí)際的值target是2,0。
①通過tf.math.top_k方法,對(duì)預(yù)測(cè)的概率進(jìn)行排序,讓它返回前三大的值。并得到索引。
②將索引進(jìn)行轉(zhuǎn)置之后,可以方便地閱讀:第一列就是第一條數(shù)據(jù)的預(yù)測(cè)值概率索引排序,第二列就是第二條數(shù)據(jù)的預(yù)測(cè)值概率索引排序。
③那么,對(duì)于兩條數(shù)據(jù)top1的準(zhǔn)確率,就是概率最大的索引,也就是第一行的兩個(gè)數(shù)據(jù),2,1,而實(shí)際值是2,0,那么top1準(zhǔn)確率就是50%
④top2的準(zhǔn)確率,意思就是,只要前兩名的概率預(yù)測(cè)有對(duì)的,那就算預(yù)測(cè)對(duì)了。那么第一行,第一條預(yù)測(cè)對(duì)了,第二條預(yù)測(cè)錯(cuò)了。而第二行,第一條預(yù)測(cè)錯(cuò)了,第二條預(yù)測(cè)對(duì)了。
⑤那么,根據(jù)“只要前兩個(gè)概率有一個(gè)對(duì),那就算對(duì)”,top2的準(zhǔn)確率就是100%


三、TensorFlow高階操作
1.tf.where()
如果傳入布爾型數(shù)據(jù),會(huì)根據(jù)數(shù)據(jù)返回值為True的數(shù)值的索引。

如果傳入條件數(shù)據(jù),比如where(condition, A, B),condition是一個(gè)布爾tensor,會(huì)從A里面選擇condition為true的位置所對(duì)應(yīng)的數(shù)據(jù),從B里面選擇conditon為false的位置所對(duì)應(yīng)的數(shù)據(jù)。

2.tf.scatter_nd()
該方法中,傳入索引,數(shù)據(jù),底板。
底板通常是全0的tensor,索引是和數(shù)據(jù)一一對(duì)應(yīng)的,并且索引的長(zhǎng)度不超過底板。
傳入的每一個(gè)數(shù)據(jù)都對(duì)應(yīng)一個(gè)索引,然后把數(shù)據(jù)更新到底板上面索引對(duì)應(yīng)的位置。

如果底板已經(jīng)有數(shù)據(jù)了,就需要全部清零,再更新。
在二維上面舉例如下:

3.tf.meshgrid()
和numpy里面的meshgrid用法一樣,分別生成的是網(wǎng)格中x和y的數(shù)據(jù)。例子如下:

然后使用stack進(jìn)行一個(gè)堆疊,就可以得到所有25個(gè)點(diǎn)的坐標(biāo)。

以上就是TensorFlow人工智能學(xué)習(xí)張量及高階操作示例詳解的詳細(xì)內(nèi)容,更多關(guān)于TensorFlow張量高階操作的資料請(qǐng)關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信