張量

張量這一概念的核心在于俺附,它是一個(gè)數(shù)據(jù)容器。它包含的數(shù)據(jù)幾乎總是數(shù)值數(shù)據(jù)溪掀,因此它是數(shù)字的容器事镣。

你可能對矩陣很熟悉, 它是二維張量揪胃。 張量是矩陣向任意維度的推廣[注意璃哟, 張量的維度(dimension)通常叫作軸(axis)]氛琢。

張量的維度

  1. 包含一個(gè)數(shù)字的張量叫作標(biāo)量(scalar,也叫標(biāo)量張量随闪、零維張量阳似、0D 張量)。
    張量有 0 個(gè)軸( ndim == 0 )铐伴。張量軸的個(gè)數(shù)也叫作階(rank)撮奏。下面是一個(gè) Numpy 標(biāo)量。
>>> import numpy as np
>>> x = np.array(12)
>>> x array(12)
>>> x.ndim 
0
  1. 向量(1D 張量)
    數(shù)字組成的數(shù)組叫作向量(vector)或一維張量(1D 張量)当宴。一維張量只有一個(gè)軸畜吊。
>>> x = np.array([12, 3, 6, 14, 7])
>>> x array([12, 3, 6, 14, 7])
>>> x.ndim 
1
  1. 矩陣(2D 張量)
    向量組成的數(shù)組叫作矩陣(matrix)或二維張量(2D 張量)。矩陣有 2 個(gè)軸(通常叫作行和列)
    第一個(gè)軸上的元素叫作行(row)即供,第二個(gè)軸上的元素叫作列(column)定拟。
>>> x = np.array([[5, 78, 2, 34, 0],
                  [6, 79, 3, 35, 1], 
                  [7, 80, 4, 36, 2]])
>>> x.ndim 
2
  1. 3D 張量與更高維張量
    將多個(gè)矩陣組合成一個(gè)新的數(shù)組,可以得到一個(gè) 3D 張量逗嫡,你可以將其直觀地理解為數(shù)字 組成的立方體青自。
>>> x = np.array([[[5, 78, 2, 34, 0], 
                   [6, 79, 3, 35, 1], 
                   [7, 80, 4, 36, 2]], 
                  [[5, 78, 2, 34, 0], 
                   [6, 79, 3, 35, 1], 
                   [7, 80, 4, 36, 2]], 
                  [[5, 78, 2, 34, 0],
                   [6, 79, 3, 35, 1], 
                   [7, 80, 4, 36, 2]]])
>>> x.ndim 
3

將多個(gè) 3D 張量組合成一個(gè)數(shù)組,可以創(chuàng)建一個(gè) 4D 張量驱证,以此類推延窜。深度學(xué)習(xí)處理的一般 是 0D 到 4D 的張量,但處理視頻數(shù)據(jù)時(shí)可能會(huì)遇到 5D 張量抹锄。

關(guān)鍵屬性

  • 軸的個(gè)數(shù)(階)逆瑞。 例如,3D 張量有 3 個(gè)軸伙单, 矩陣有 2 個(gè)軸获高。 這在 Numpy 等 Python 庫中也叫張量的 ndim 。 ?

  • 形狀吻育。 這是一個(gè)整數(shù)元組念秧, 表示張量沿每個(gè)軸的維度大小(元素個(gè)數(shù))布疼。 例如摊趾, 前面矩陣示例的形狀為 (3, 5) ,3D 張量示例的形狀為 (3, 3, 5) 游两。向量的形狀只包含一個(gè)元素砾层,比如 (5,) ,而標(biāo)量的形狀為空贱案,即 () 肛炮。

  • 數(shù)據(jù)類型(在 Python 庫中通常叫作 dtype )。這是張量中所包含數(shù)據(jù)的類型,例如铸董,張量的類型可以是 float32 祟印、 uint8 、 float64 等粟害。在極少數(shù)情況下蕴忆,你可能會(huì)遇到字符 ( char )張量。

張量的切片同python數(shù)組的切片一樣悲幅。

數(shù)據(jù)批量的概念

通常來說套鹅,深度學(xué)習(xí)中所有數(shù)據(jù)張量的第一個(gè)軸(0 軸,因?yàn)樗饕龔?0 開始)都是樣本軸 (samples axis汰具,有時(shí)也叫樣本維度)卓鹿。

>>> my_slice = train_images[10:100]
>>> print(my_slice.shape) (90, 28, 28)

上面的例子表示 :在MNIST數(shù)據(jù)集中,將 10~100 個(gè)數(shù)字(不包括第 100 個(gè))留荔, 并將其放在形狀為 (90, 28, 28) 的數(shù)組中吟孙。

>>> my_slice = train_images[10:100, :, :]
>>> my_slice.shape (90, 28, 28)
>>> my_slice = train_images[10:100, 0:28, 0:28]
>>> my_slice.shape (90, 28, 28)

這些代碼效果都是等同的。

此外聚蝶,深度學(xué)習(xí)模型不會(huì)同時(shí)處理整個(gè)數(shù)據(jù)集杰妓,而是將數(shù)據(jù)拆分成小批量
比如下面的每個(gè)批量 大小是128.

batch = train_images[:128]
batch = train_images[128:256]
batch = train_images[128 * n:128 * (n + 1)]

對于這種批量張量碘勉,第一個(gè)軸(0 軸)叫作批量軸(batch axis)批量維度(batch dimension)巷挥。

現(xiàn)實(shí)世界中的數(shù)據(jù)張量

向量數(shù)據(jù):2D 張量,形狀為 (samples, features) 验靡。
時(shí)間序列數(shù)據(jù)序列數(shù)據(jù):3D 張量倍宾,形狀為 (samples, timesteps, features) 。
圖像:4D 張量胜嗓,形狀為 (samples, height, width, channels) 或 (samples, channels, height, width) 高职。
視頻:5D 張量,形狀為 (samples, frames, height, width, channels) 或 (samples, frames, channels, height, width) 辞州。

舉例:

  • 時(shí)間序列組成的3D張量


    根據(jù)慣例初厚,時(shí)間軸始終是第 2 個(gè)軸(索引為 1 的軸)

  • 圖像數(shù)據(jù)組成的4D張量


    圖像張量的形狀有兩種約定:通道在后(channels-last)的約定(在 TensorFlow 中使用)和通道在前(channels-first)的約定(在 Theano 中使用)。
    Google 的 TensorFlow 機(jī)器學(xué)習(xí)框架將顏色深度軸放在最后: (samples, height, width, color_depth) 孙技。 與此相反,Theano 將圖像深度軸放在批量軸之后: (samples, color_depth, height, width) 排作。

  • 視頻數(shù)據(jù)組成的5D張量
    視頻數(shù)據(jù)是現(xiàn)實(shí)生活中需要用到 5D 張量的少數(shù)數(shù)據(jù)類型之一牵啦。 視頻可以看作一系列幀, 每一幀都是一張彩色圖像妄痪。由于每一幀都可以保存在一個(gè)形狀為 (height, width, color_ depth) 的 3D 張量中哈雏, 因此一系列幀可以保存在一個(gè)形狀為 (frames, height, width, color_depth) 的 4D 張量中,而不同視頻組成的批量則可以保存在一個(gè) 5D 張量中,其形狀為 (samples, frames, height, width, color_depth) 裳瘪。

張量變形

張量變形是指改變張量的行和列土浸,以得到想要的形狀。變形后的張量的元素總個(gè)數(shù)與初始張量相同彭羹。

>>> x = np.array([[0., 1.], 
                  [2., 3.], 
                  [4., 5.]])
>>> print(x.shape) (3, 2)
>>> x = x.reshape((6, 1))
>>> x 
array([[ 0.], 
       [ 1.], 
       [ 2.], 
       [ 3.], 
       [ 4.], 
       [ 5.]])
>>> x = x.reshape((2, 3))
>>> x 
array([[ 0., 1., 2.], 
       [ 3., 4., 5.]])

經(jīng)常遇到的一種特殊的張量變形是轉(zhuǎn)置(transposition)黄伊。對矩陣做轉(zhuǎn)置是指將行和列互換, 使 x[i, :] 變?yōu)?x[:, i] 派殷。

>>> x = np.zeros((300, 20))
>>> x = np.transpose(x)
>>> print(x.shape) 
(20, 300)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末还最,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子毡惜,更是在濱河造成了極大的恐慌拓轻,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件经伙,死亡現(xiàn)場離奇詭異扶叉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帕膜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門枣氧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泳叠,你說我怎么就攤上這事作瞄。” “怎么了危纫?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵宗挥,是天一觀的道長。 經(jīng)常有香客問我种蝶,道長契耿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任螃征,我火速辦了婚禮搪桂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盯滚。我一直安慰自己踢械,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布魄藕。 她就那樣靜靜地躺著内列,像睡著了一般。 火紅的嫁衣襯著肌膚如雪背率。 梳的紋絲不亂的頭發(fā)上话瞧,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天嫩与,我揣著相機(jī)與錄音,去河邊找鬼交排。 笑死划滋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的埃篓。 我是一名探鬼主播处坪,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼都许!你這毒婦竟也來了稻薇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤胶征,失蹤者是張志新(化名)和其女友劉穎塞椎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睛低,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡案狠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钱雷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骂铁。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖罩抗,靈堂內(nèi)的尸體忽然破棺而出拉庵,到底是詐尸還是另有隱情,我是刑警寧澤套蒂,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布钞支,位于F島的核電站,受9級特大地震影響操刀,放射性物質(zhì)發(fā)生泄漏烁挟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一骨坑、第九天 我趴在偏房一處隱蔽的房頂上張望撼嗓。 院中可真熱鬧,春花似錦欢唾、人聲如沸且警。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽振湾。三九已至,卻和暖如春亡脸,著一層夾襖步出監(jiān)牢的瞬間押搪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工浅碾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留大州,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓垂谢,卻偏偏與公主長得像厦画,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子滥朱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容