深度學習筆記(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)
我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章