張量(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 又稱純量,是只有大小 沒有方向 可用實數表示的乙個量。實際上標量就是實數,標量 這個稱法只是為了區別於向量。標量可以是負...