日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

numpy 和tensorflow中argmax(),argmin()函数使用讲解

發布時間:2024/4/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 numpy 和tensorflow中argmax(),argmin()函数使用讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在使用argmax()函數時,比如在深度學習里面計算acc經常要用到這個參數,這個參數返回的是沿軸axis最大值的索引值,對于,tensorflow和numpy用法是一樣的,此處我就用numpy來舉例說明。

argmax(a, axis=None, out=None) # a 表示array # axis 表示指定的軸,默認是None,表示把array平鋪, # out 默認為None,如果指定,那么返回的結果會插入其中
  • 1
  • 2
  • 3
  • 4

對于axis默認為None的情況

首先我們看axis=None,也就是默認的時候:

二維array情況

a = np.array([[2,5,6],[7,6,1]]) print(np.argmax(a))
  • 1
  • 2

輸出結果為3,因為a里面7是最大的,如果沒有指定axis,默認就是None,相當于把array平鋪為:[2,5,6,7,6,1],那么結果就是3,因為索引3對應的值最大,再來看一下三維的情況?
### 三維array的情況

b = np.random.randint(20,size=[3,2,2]) print(b) [[[ 0 16] [14 5]] [[16 6] [19 2]] [[11 11] [ 5 7]]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

這個里面,19最大,把它平鋪,19對應的索引就是6,那么np.argmax(b)就是6,經過驗證輸出就是6

對于給定axis的情況

如果給定axis,那么返回的就是沿著給定軸的最大索引,所謂沿著,我覺得就是投影,就是沿著這個軸投影,每一根投影線上最大值的索引。

二維情況分析

a = np.array([[2,5,6],[7,6,1]]) print(np.argmax(a,axis=1)) [2 0]
  • 1
  • 2
  • 3

這次,我們給定axis=1,那么按照我們說的,就是沿著axis=1投影,看得出來,投影后我們只有兩個值,因為[2,5,6]在一根投影線上,相當于就是我理解的一個投影線,因為這些值投影后重疊了,相當于只有一個值,所以[7,6,1]也是一個投影線,然后在這兩個投影線取最大值的索引,對于[2,5,6]來說,最大值索引就是2,[7,6,1]最大值索引就是0,所以結果為[2,0]?
然后,我們分析,當我們設置axis=0的時候,也就是沿著axis=0,投影,那么[2,7],[5,6],[6,1]分別在一個投影線上,所以結果為[1,1,0],經過驗證確實是這樣的。

三維情況分析

b = np.random.randint(20,size=[3,2,2]) print(b) [[[ 0 16] [14 5]] [[16 6] [19 2]] [[11 11] [ 5 7]]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

還是用上面的array來說,看一下結果:

print(np.argmax(b,axis=1)) [[1 0][1 0][0 0]]
  • 1
  • 2
  • 3
  • 4

同樣的分析,我們指定了軸為1,那么也就是說我們沿著axis=1軸投影,這是一個體,那么我們投影線相當于有3*2條,其實在同一根投影線上是axis=0和axis=2的一個組合,比如axis=1中第一個上的和axis=2的第一個上的組合,也就是b[0,:,0],b[0,:,1],b[2,:,0],b[2,:,1],b[3,:,0],b[3,:,1]這六條線的索引對應的最大值,我們看他們分別為[ 0 14],[16 5],[16 19],[6 2],[11 5],[11 7],那么結果就是[[1,0],[1,0],[0,0]]。?
所以其實和二維是一樣的,所謂投影線,其實可以這樣表示,我們去axis=0,那么我們遍歷其他維度的大小,比如 arr[:,0,0],arr[:,0,1],也就是沿著那個軸,那么軸取全部值,然后再在投影線上找最大值對應索引。

總結

tensorflow里面的是一樣的用法,同時argmin()用法相同,只是他是求最小值的索引。

轉載于:https://www.cnblogs.com/psztswcbyy/p/9282530.html

總結

以上是生活随笔為你收集整理的numpy 和tensorflow中argmax(),argmin()函数使用讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。