摘要:一句話總結(jié)可以方便我們將數(shù)據(jù)進(jìn)行不同維度的處理。一理解如果你像我一樣,發(fā)現(xiàn)中有這個參數(shù),但不知道是什么意思。一旦維數(shù)超過二維,就無法用簡單的行和列來表示了。
前言
只有光頭才能變強(qiáng)。
回顧前面:
從零開始學(xué)TensorFlow【01-搭建環(huán)境、HelloWorld篇】
什么是TensorFlow?
TensorFlow讀寫數(shù)據(jù)
不知道大家最開始接觸到axis的時候是怎么樣的,反正我是挺難理解的..我們可以發(fā)現(xiàn)TensorFlow的很多API都有axis這個參數(shù),如果我們對axis不了解,壓根不知道API是怎么搞的。
一句話總結(jié)axis:axis可以方便我們將數(shù)據(jù)進(jìn)行不同維度的處理。一、理解axis
如果你像我一樣,發(fā)現(xiàn)API中有axis這個參數(shù),但不知道是什么意思。可能就會搜搜a(bǔ)xis到底代表的什么意思。于是可能會類似搜到下面的信息:
使用0值表示沿著每一列或行標(biāo)簽索引值向下執(zhí)行方法(axis=0代表往跨行)使用1值表示沿著每一行或者列標(biāo)簽?zāi)O驁?zhí)行對應(yīng)的方法(axis=1代表跨列)
但我們又知道,我們的數(shù)組不單單只有二維的,還有三維、四維等等。一旦維數(shù)超過二維,就無法用簡單的行和列來表示了。
所以,可以用我下面的方式進(jìn)行理解:
axis=0將最開外頭的括號去除,看成一個整體,在這個整體上進(jìn)行運(yùn)算
axis=1將第二個括號去除,看成一個整體,在這個整體上進(jìn)行運(yùn)算
...依次類推
話不多說,下面以例子說明~
1.1二維數(shù)組之concat首先,我們來看個concat的例子,concat第一個參數(shù)接收val,第二個參數(shù)接收的是axis
def learn_concat(): # 二維數(shù)組 t1 = tf.constant([[1, 2, 3], [4, 5, 6]]) t2 = tf.constant([[7, 8, 9], [10, 11, 12]]) with tf.Session() as sess: # 二維數(shù)組針對 axis 為0 和 1 的情況 print(sess.run(tf.concat([t1, t2], 0))) print(sess.run(tf.concat([t1, t2], 1)))
ok,下面以圖示的方式來說明。現(xiàn)在我們有兩個數(shù)組,分別是t1和t2:
首先,我們先看axis=0的情況,也就是tf.concat([t1, t2], 0)。從上面的描述,我們知道,先把第一個括號去除,然后將其子內(nèi)容看成一個整體,在這個整體下進(jìn)行想對應(yīng)的運(yùn)算(這里我們就是concat)。
所以最終的結(jié)果是:
[ [1 2 3], [4 5 6], [7 8 9], [10 11 12] ]
接著,我們再看axis=1的情況,也就是tf.concat([t1, t2], 1)。從上面的描述,我們知道,先把第二個括號去除,然后將其子內(nèi)容看成一個整體,在這個整體下進(jìn)行想對應(yīng)的運(yùn)算(這里我們就是concat)。
所以最終的結(jié)果是:
[ [1, 2, 3, 7, 8, 9] [4, 5, 6, 10, 11, 12] ]1.2三維數(shù)組之concat
接下來我們看一下三維的情況
def learn_concat(): # 三維數(shù)組 t3 = tf.constant([[[1, 2], [2, 3]], [[4, 4], [5, 3]]]) t4 = tf.constant([[[7, 4], [8, 4]], [[2, 10], [15, 11]]]) with tf.Session() as sess: # 三維數(shù)組針對 axis 為0 和 1 和 -1 的情況 print(sess.run(tf.concat([t3, t4], 0))) print(sess.run(tf.concat([t3, t4], 1))) print(sess.run(tf.concat([t3, t4], -1)))
ok,下面也以圖示的方式來說明。現(xiàn)在我們有兩個數(shù)組,分別是t3和t4:
首先,我們先看axis=0的情況,也就是tf.concat([t3, t4], 0)。從上面的描述,我們知道,先把第一個括號去除,然后將其子內(nèi)容看成一個整體,在這個整體下進(jìn)行想對應(yīng)的運(yùn)算(這里我們就是concat)。
所以最終的結(jié)果是:
[ [ [1 2] [2 3] ] [ [4 4] [5 3] ] [ [7 4] [8 4] ] [ [2 10] [15 11] ] ]
接著,我們再看axis=1的情況,也就是tf.concat([t3, t4], 1)。從上面的描述,我們知道,先把第二個括號去除,然后將其子內(nèi)容看成一個整體,在這個整體下進(jìn)行想對應(yīng)的運(yùn)算(這里我們就是concat)。
所以最終的結(jié)果是:
[ [ [1 2] [2 3] [7 4] [8 4] ] [ [4 4] [5 3] [2 10] [15 11] ] ]
最后,我們來看一下axis=-1這種情況,在文檔也有相關(guān)的介紹:
As in Python, the axis could also be negative numbers. Negative axis
are interpreted as counting from the end of the rank, i.e.,
axis + rank(values)-th dimension
所以,對于我們?nèi)S的數(shù)組而言,那axis=-1實(shí)際上就是axis=2,下面我們再來看一下這種情況:
最終的結(jié)果是:
[ [ [1 2 7 4] [2 3 8 4] ] [ [4 4 2 10] [5 3 15 11] ] ]
除了concat以外,其實(shí)很多函數(shù)都用到了axis這個參數(shù),再舉個例子:
>>> item = np.array([[1,4,8],[2,3,5],[2,5,1],[1,10,7]]) >>> item array([[1, 4, 8], [2, 3, 5], [2, 5, 1], [1, 10, 7]]) >>> item.sum(axis = 1) array([13, 10, 8, 18]) >>> item.sum(axis = 0) array([ 6, 22, 21])
參考資料:
有關(guān)axis/axes的理解
https://zhuanlan.zhihu.com/p/25761406
最后下一篇是TensorBoard~
樂于輸出干貨的Java技術(shù)公眾號:Java3y。公眾號內(nèi)有200多篇原創(chuàng)技術(shù)文章、海量視頻資源、精美腦圖,不妨來關(guān)注一下!
覺得我的文章寫得不錯,不妨點(diǎn)一下贊!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/43460.html
摘要:是程序員的好去處,本公眾號將以為主題,開始一個系列,爭取做到每周一篇,翻譯并幫助學(xué)習(xí)者一起理解一些有代表性的案例。所以問題當(dāng)中第一個列子代表沿著列水平方向計算均值,而第二個列子代表將對應(yīng)的列標(biāo)簽們沿著水平的方向依次刪掉。 Stackoverflow.com是程序員的好去處,本公眾號將以pandas為主題,開始一個系列,爭取做到每周一篇,翻譯并幫助pandas學(xué)習(xí)者一起理解一些有代表性的...
摘要:本文記錄了我在學(xué)習(xí)前端上的筆記,方便以后的復(fù)習(xí)和鞏固。注意項目現(xiàn)在顯示的寬度是他們的默認(rèn)寬度。各行將會伸展以占用剩余的空間。在其它情況下,剩余空間被所有行平分,擴(kuò)大各行的側(cè)軸尺寸。這不會影響源代碼。不要忘記了,默認(rèn)情況下,項目的值為。 本文記錄了我在學(xué)習(xí)前端上的筆記,方便以后的復(fù)習(xí)和鞏固。 開始使用Flex 在父元素中的顯式的設(shè)置displa...
摘要:本片記錄坐標(biāo)軸入門,使用版本如何實(shí)現(xiàn)坐標(biāo)軸生成的坐標(biāo)圖是通過的路徑元素元素組成的,如下圖表示的是底部坐標(biāo)軸不包括內(nèi)部刻度,如下這部分通過描繪,在中稱為容器則包括了和作為即線,即文字實(shí)現(xiàn)坐標(biāo)軸主要步驟步驟主要如下創(chuàng)建比例尺創(chuàng)建坐標(biāo)軸,是個函數(shù) 本片blog記錄d3坐標(biāo)軸入門,使用版本v5.9.2 SVG如何實(shí)現(xiàn)坐標(biāo)軸 d3生成的坐標(biāo)圖是通過svg的path(路徑)元素 + g + lin...
摘要:目前為止,支持類似這種多方向網(wǎng)站的最佳方式,依然是使用和變量。在英文網(wǎng)站,寬度屬性用表示,高度屬性用表示。在英文網(wǎng)站中更多常用于,它的值升級為代替。在英文網(wǎng)站中,物理屬性與邏輯屬性的表現(xiàn)是一致的。 原文鏈接:https://medium.com/@elad/new-... 原文作者:Elad Shechter 簡介 在過去,大多數(shù)程序猿在思考布局時總是習(xí)慣于從上下左右的角度出發(fā)。這是...
啟動 flex-box: 父元素設(shè)置 display: flex; 或 display:inline-flex; flex container: 父元素顯示設(shè)置 display: flex flex item:flex container 中的子元素 flex 容器屬性: flex-direction:控制 flex 元素沿著 main-axis 的排列方向 row:默認(rèn)值,flex 元素沿...
閱讀 3323·2023-04-26 00:58
閱讀 1274·2021-09-22 16:04
閱讀 3321·2021-09-02 15:11
閱讀 1566·2019-08-30 15:55
閱讀 2347·2019-08-30 15:55
閱讀 3270·2019-08-23 18:41
閱讀 3468·2019-08-23 18:18
閱讀 2759·2019-08-23 17:53