欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

TensorFlow人工智能學(xué)習(xí)張量及高階操作示例詳解

 更新時(shí)間:2021年11月11日 10:03:59   作者:Swayzzu  
這篇文章主要為大家介紹了TensorFlow人工智能學(xué)習(xí)張量及高階操作的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

一、張量裁剪

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ù)。通過(guò)裁剪范數(shù),可以進(jìn)行等比例放縮,使得梯度方向不變,但數(shù)值變小。通過(guò)這個(gè)方法可以對(duì)梯度進(jìn)行裁剪,一次性對(duì)所有的參數(shù)的范數(shù)進(jìn)行裁剪,并且保留方向。防止梯度爆炸,梯度彌散。

二、張量排序

1.tf.sort/argsort()

這兩個(gè)方法分別返回排序后的值,排序后的索引。有索引之后,可以通過(guò)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)的索引,存到返回值中。

可以通過(guò)這個(gè)規(guī)則,求解topk的準(zhǔn)確率。比如下面的例子,對(duì)于兩條數(shù)據(jù),預(yù)測(cè)概率是prob,根據(jù)預(yù)測(cè)概率,得到這兩條數(shù)據(jù)最大值索引是2,1,而實(shí)際的值target是2,0。

①通過(guò)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ù)返回值為T(mén)rue的數(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)度不超過(guò)底板。

傳入的每一個(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)文章!

相關(guān)文章

最新評(píng)論