成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何理解Axis?

huashiou / 779人閱讀

摘要:一句話總結(jié)可以方便我們將數(shù)據(jù)進(jìn)行不同維度的處理。一理解如果你像我一樣,發(fā)現(xiàn)中有這個(gè)參數(shù),但不知道是什么意思。一旦維數(shù)超過二維,就無法用簡(jiǎn)單的行和列來表示了。

前言
只有光頭才能變強(qiáng)。

回顧前面:

從零開始學(xué)TensorFlow【01-搭建環(huán)境、HelloWorld篇】

什么是TensorFlow?

TensorFlow讀寫數(shù)據(jù)

不知道大家最開始接觸到axis的時(shí)候是怎么樣的,反正我是挺難理解的..我們可以發(fā)現(xiàn)TensorFlow的很多API都有axis這個(gè)參數(shù),如果我們對(duì)axis不了解,壓根不知道API是怎么搞的。

一句話總結(jié)axis:axis可以方便我們將數(shù)據(jù)進(jìn)行不同維度的處理。
一、理解axis

如果你像我一樣,發(fā)現(xiàn)API中有axis這個(gè)參數(shù),但不知道是什么意思。可能就會(huì)搜搜a(bǔ)xis到底代表的什么意思。于是可能會(huì)類似搜到下面的信息:

使用0值表示沿著每一列或行標(biāo)簽索引值向下執(zhí)行方法(axis=0代表往跨行)

使用1值表示沿著每一行或者列標(biāo)簽?zāi)O驁?zhí)行對(duì)應(yīng)的方法(axis=1代表跨列)

但我們又知道,我們的數(shù)組不單單只有二維的,還有三維、四維等等。一旦維數(shù)超過二維,就無法用簡(jiǎn)單的行和列來表示了。

所以,可以用我下面的方式進(jìn)行理解:

axis=0將最開外頭的括號(hào)去除,看成一個(gè)整體,在這個(gè)整體上進(jìn)行運(yùn)算

axis=1將第二個(gè)括號(hào)去除,看成一個(gè)整體,在這個(gè)整體上進(jìn)行運(yùn)算

...依次類推

話不多說,下面以例子說明~

1.1二維數(shù)組之concat

首先,我們來看個(gè)concat的例子,concat第一個(gè)參數(shù)接收val,第二個(gè)參數(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ù)組針對(duì) axis 為0 和 1 的情況
        print(sess.run(tf.concat([t1, t2], 0)))
        print(sess.run(tf.concat([t1, t2], 1)))

ok,下面以圖示的方式來說明?,F(xiàn)在我們有兩個(gè)數(shù)組,分別是t1和t2:

首先,我們先看axis=0的情況,也就是tf.concat([t1, t2], 0)。從上面的描述,我們知道,先把第一個(gè)括號(hào)去除,然后將其子內(nèi)容看成一個(gè)整體,在這個(gè)整體下進(jìn)行想對(duì)應(yīng)的運(yùn)算(這里我們就是concat)。

所以最終的結(jié)果是:

[
    [1 2 3],
    [4 5 6],
    [7 8 9],
    [10 11 12]
]

接著,我們?cè)倏?b>axis=1的情況,也就是tf.concat([t1, t2], 1)。從上面的描述,我們知道,先把第二個(gè)括號(hào)去除,然后將其子內(nèi)容看成一個(gè)整體,在這個(gè)整體下進(jìn)行想對(duì)應(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ù)組針對(duì) 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,下面也以圖示的方式來說明?,F(xiàn)在我們有兩個(gè)數(shù)組,分別是t3和t4:

首先,我們先看axis=0的情況,也就是tf.concat([t3, t4], 0)。從上面的描述,我們知道,先把第一個(gè)括號(hào)去除,然后將其子內(nèi)容看成一個(gè)整體,在這個(gè)整體下進(jìn)行想對(duì)應(yīng)的運(yùn)算(這里我們就是concat)。

所以最終的結(jié)果是:

[
    [
        [1 2]
        [2 3]
    ]
    [
        [4 4]
        [5 3]
    ]
    [
        [7 4]
        [8 4]
    ]
    [
        [2 10]
        [15 11]
    ]
]

接著,我們?cè)倏?b>axis=1的情況,也就是tf.concat([t3, t4], 1)。從上面的描述,我們知道,先把第二個(gè)括號(hào)去除,然后將其子內(nèi)容看成一個(gè)整體,在這個(gè)整體下進(jìn)行想對(duì)應(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

所以,對(duì)于我們?nèi)S的數(shù)組而言,那axis=-1實(shí)際上就是axis=2,下面我們?cè)賮砜匆幌逻@種情況:

最終的結(jié)果是:

[
 [
  [1 2 7 4]
  [2 3 8 4]
 ]
 [
  [4 4 2 10]
  [5 3 15 11]
 ]
]

除了concat以外,其實(shí)很多函數(shù)都用到了axis這個(gè)參數(shù),再舉個(gè)例子:

>>> 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ù)公眾號(hào):Java3y。公眾號(hào)內(nèi)有200多篇原創(chuàng)技術(shù)文章、海量視頻資源、精美腦圖,不妨來關(guān)注一下!

覺得我的文章寫得不錯(cuò),不妨點(diǎn)一下!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43460.html

相關(guān)文章

  • Python Pandas與Numpy中axis參數(shù)的二義性

    摘要:是程序員的好去處,本公眾號(hào)將以為主題,開始一個(gè)系列,爭(zhēng)取做到每周一篇,翻譯并幫助學(xué)習(xí)者一起理解一些有代表性的案例。所以問題當(dāng)中第一個(gè)列子代表沿著列水平方向計(jì)算均值,而第二個(gè)列子代表將對(duì)應(yīng)的列標(biāo)簽們沿著水平的方向依次刪掉。 Stackoverflow.com是程序員的好去處,本公眾號(hào)將以pandas為主題,開始一個(gè)系列,爭(zhēng)取做到每周一篇,翻譯并幫助pandas學(xué)習(xí)者一起理解一些有代表性的...

    glumes 評(píng)論0 收藏0
  • CSS Flexbox學(xué)習(xí)筆記

    摘要:本文記錄了我在學(xué)習(xí)前端上的筆記,方便以后的復(fù)習(xí)和鞏固。注意項(xiàng)目現(xiàn)在顯示的寬度是他們的默認(rèn)寬度。各行將會(huì)伸展以占用剩余的空間。在其它情況下,剩余空間被所有行平分,擴(kuò)大各行的側(cè)軸尺寸。這不會(huì)影響源代碼。不要忘記了,默認(rèn)情況下,項(xiàng)目的值為。 本文記錄了我在學(xué)習(xí)前端上的筆記,方便以后的復(fù)習(xí)和鞏固。 開始使用Flex 在父元素中的顯式的設(shè)置displa...

    zzir 評(píng)論0 收藏0
  • d3.js 使用坐標(biāo)軸

    摘要:本片記錄坐標(biāo)軸入門,使用版本如何實(shí)現(xiàn)坐標(biāo)軸生成的坐標(biāo)圖是通過的路徑元素元素組成的,如下圖表示的是底部坐標(biāo)軸不包括內(nèi)部刻度,如下這部分通過描繪,在中稱為容器則包括了和作為即線,即文字實(shí)現(xiàn)坐標(biāo)軸主要步驟步驟主要如下創(chuàng)建比例尺創(chuàng)建坐標(biāo)軸,是個(gè)函數(shù) 本片blog記錄d3坐標(biāo)軸入門,使用版本v5.9.2 SVG如何實(shí)現(xiàn)坐標(biāo)軸 d3生成的坐標(biāo)圖是通過svg的path(路徑)元素 + g + lin...

    Karuru 評(píng)論0 收藏0
  • New CSS Logical Properties! - The Next Step of CSS

    摘要:目前為止,支持類似這種多方向網(wǎng)站的最佳方式,依然是使用和變量。在英文網(wǎng)站,寬度屬性用表示,高度屬性用表示。在英文網(wǎng)站中更多常用于,它的值升級(jí)為代替。在英文網(wǎng)站中,物理屬性與邏輯屬性的表現(xiàn)是一致的。 原文鏈接:https://medium.com/@elad/new-... 原文作者:Elad Shechter 簡(jiǎn)介 在過去,大多數(shù)程序猿在思考布局時(shí)總是習(xí)慣于從上下左右的角度出發(fā)。這是...

    zhoutao 評(píng)論0 收藏0
  • flex-box 速記表

    啟動(dòng) 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 元素沿...

    haoguo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<