深度學習筆記(1):張量及其運算

本系列文章以Python為主,且假設讀者使用Windows作業系統。
本文會使用到numpy套件,可使用「pip install numpy」進行安裝

0D張量(Python 數值資料)

即純量質(Scalar),0D為float32或float64的數值資料

import numpy as npx = np.array(10.5)
print(x)
print(x.ndim) #ndim為軸數

1D張量(Python List)

就是向量,一維陣列

x = np.array([1.2, 5.5, 8.7, 10.5])  #用list建立4個元素的一維陣列
print(x)
print(x.ndim)

2D張量

即矩陣,維度為2的陣列

例如:公司有10000名員工,每位員工資料包含3個元素的向量(年齡、國碼、薪水),(10000, 3)

x = np.array([[1.2,5.5,8.7,8.5],
[2.2,4.3,6.5,9.5],
[6.2,7.3,1.5,3.5]])
print(x)
print(x.ndim)
print(x.shape) #3 rows x 4 columns

3D張量

有3個維度的三維陣列,特徵資料擁有時間間距和循序性。

例如:台積電前1000天的股價資訊,每個交易日有240分鐘,每一分鐘有3個價格(目前價格、最高和最低價格),每一天是一個2D張量(240,3),整個資料集是(1000,240,3)

x = np.array([[[1.2,5.5,3.3],
[8.7,8.5,4.4]],
[[2.2,4.3,5.5],
[6.5,9.5,6.6]],
[[6.2,7.3,7.7],
[1.5,3.5,8.8]]])
print(x)
print(x.ndim)
print(x.shape)

4D張量

四個維度的四維陣列,圖片是一個3D張量:(寬度、高度、色彩數),整個圖片資料集市一個4D張量:(樣本數、寬度、高度、色彩數)

5D張量與更高維度的張量

影片就是一種5D張量:(樣本數、畫面數、寬度、高度、色彩數),比圖片多了一個軸,即每一秒有多少個畫面(FPS)

張量運算

Element-wise Operations加減乘除

a = np.array([[1,2],[3,4]])
print("a=")
print(a)
s = np.array([[5,6],[7,8]])
print("s=")
print(s)
b = a + s
print("a+s=")
print(b)
b = a - s
print("a-s=")
print(b)
b= a * s
print("a*s=")
print(b)
b = a / s
print("a/s=")
print(b)

點積運算Dot Product

a = np.array([[1,2],[3,4]])
print("a=")
print(a)
s = np.array([[5,6],[7,8]])
print("s=")
print(s)
b = a.dot(s)
print("a.dot(s)=")
print(b)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store