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

2021-09-29 17:46:42 字數 2162 閱讀 9956

張量(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

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

有乙個軸,沿著軸有 5 個維度,而 5d 張量有 5 個軸(沿著每個軸可能有任意個維度)。

>>

> x = np.array([[

5,78,

2,34,

0],[

6,79,

3,35,

1],[

7,80,

4,36,

2]])

>>

> x.ndim

2

>>

> 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

#下面這個例子選擇第 10~100 個數字,並將其放在形狀為 (90, 28,28) 的陣列中

>>

> my_slice = train_images[10:

100]

>>

>

print

(my_slice.shape)(90

,28,28

)#下面的寫法跟上面是等價的;其中:表示選取整個軸

>>

> 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

)

#你可以在所有影象的右下角選出 14 畫素× 14 畫素的區域:

my_slice = train_images[:,

14:,14

:]#也可以使用負數索引。與 python 列表中的負數索引類似,它表示與當前軸終點的相對位置。

#你可以在影象中心裁剪出 14 畫素× 14 畫素的區域:

my_slice = train_images[:,

7:-7

,7:-

7]

(1)向量資料: 2d 張量,形狀為 (samples, features)

(2)時間序列資料或序列資料: 3d 張量,形狀為 (samples, timesteps, features)

(3)影象: 4d 張量,形狀為 (samples, height, width, channels) 或 (samples, channels, height, width)

張量 批量的理解(神經網路的資料表示)

一般來說,當前所有機器學習系統都是用張量作為基本的資料結構 張量是乙個資料容器,它包含的資料幾乎總是數值資料,因此它是數字的容器,矩陣是二維張量,張量是矩陣向任意維度的推廣。張量的維度,叫做軸。張量由以下幾個關鍵屬性來定義 軸的個數 形狀 資料型別 深度學習中所有資料張量的第乙個軸 0軸,因為索引從...

神經網路的資料表示

深度學習中的資料儲存在多維numpy陣列中,也叫張量 tensor 一般來說,當前所有機器學習系統都使用張量作為基本的資料結構。張量對這個領域非常重要,重要到google 的tensorflow 都以它來命名。那麼什麼是張量?張量這一概念的核心在於,它是乙個資料容器。它包含的資料幾乎總是數值資料,因...

神經網路中的資料表示

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