神經網路的資料表示

2021-09-12 14:54:20 字數 2623 閱讀 3516

深度學習中的資料儲存在多維numpy陣列中,也叫張量(tensor)。一般來說,當前所有機器學習系統都使用張量作為基本的資料結構。張量對這個領域非常重要,重要到google 的tensorflow 都以它來命名。那麼什麼是張量?

張量這一概念的核心在於,它是乙個資料容器。它包含的資料幾乎總是數值資料,因此它是數字的容器。你可能對矩陣很熟悉,它是二維張量。張量是矩陣向任意維度的推廣[注意,張量的維度(dimension)通常叫作軸(axis)]。

僅包含乙個數字的張量叫作標量(scalar,也叫標量張量、零維張量、0d 張量)。在numpy中,乙個float32 或float64 的數字就是乙個標量張量(或標量陣列)。你可以用ndim 屬性來檢視乙個numpy 張量的軸的個數。標量張量有0 個軸(ndim == 0)。張量軸的個數也叫作階(rank)。下面是乙個numpy 標量。

>>

>

import numpy as np

>>

> x = np.array(12)

>>

> x

array(12)

>>

> x.ndim

0

數字組成的陣列叫作向量(vector)或一維張量(1d 張量)。一維張量只有乙個軸。下面是乙個numpy 向量。

>>

> x = np.array([12

,3,6

,14,7

])>>

> x

array([12

,3,6

,14,7

])>>

> x.ndim

這個向量有5 個元素,所以被稱為5d 向量。不要把5d 向量和5d 張量弄混!

向量組成的陣列叫作矩陣(matrix)或二維張量(2d 張量)。矩陣有2 個軸(通常叫作行和列)。你可以將矩陣直觀地理解為數字組成的矩形網格。下面是乙個numpy 矩陣。

>>

> x = np.array([[

5,78,

2,34,

0],[

6,79,

3,35,

1],[

7,80,

4,36,

2]])

>>

> x.ndim

2

將多個矩陣組合成乙個新的陣列,可以得到乙個3d 張量,你可以將其直觀地理解為數字組成的立方體。下面是乙個numpy 的3d 張量。

>>

> 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

張量是由以下三個關鍵屬性來定義的。

from keras.datasets import mnist

(train_images, train_labels)

,(test_images, test_labels)

= mnist.load_data(

)

train_images 和train_labels 組成了訓練集(training set),模型將從這些資料中進行學習。然後在測試集(test set,即test_images 和test_labels)上對模型進行測試。

接下來,我們給出張量train_images 的軸的個數,即ndim 屬性。

>>

>

print

(train_images.ndim)

3

下面是它的形狀。

>>

>

print

(train_images.shape)

(60000,28

,28)

下面是它的資料型別,即dtype 屬性。

>>

>

print

(train_images.dtype)

uint8

所以,這裡train_images 是乙個由8 位整數組成的3d 張量。更確切地說,它是60000個矩陣組成的陣列,每個矩陣由28×28 個整數組成。每個這樣的矩陣都是一張灰度影象,元素取值範圍為0~255。

我們用幾個你未來會遇到的示例來具體介紹資料張量。你需要處理的資料幾乎總是以下類

別之一。

神經網路中的資料表示

當前所有機器學習系統都使用張量作為基本資料結構。張量對這個領域非常重要,重要到 google 的 tensorflow 都是以它來命名的。那麼什麼是張量?標量 英語 scalar 又稱純量,是只有大小 沒有方向 可用實數表示的乙個量。實際上標量就是實數,標量 這個稱法只是為了區別於向量。標量可以是負...

神經網路的資料表示 張量 Tensor

張量 tensor 是乙個資料容器,它所包含的一般是數值資料。下面是張量中的一些名詞 import numpy as np x np.array 12 x array 12 x.ndim 0 x np.array 12 3,6 14,7 x array 12 3,6 14,7 x.ndim 1這個向...

keras入門 神經網路的資料表示

資料儲存在多維 numpy 陣列中,也叫張量 tensor 一般來說,當前所 有機器學習系統都使用張量作為基本資料結構。張量這一概念的核心在於,它是乙個資料容器。它包含的資料幾乎總是數值資料,因此它 是數字的容器。你可能對矩陣很熟悉,它是二維張量。張量是矩陣向任意維度的推廣 注意,張量的維度 dim...