每天五分鐘,解決一個深度學習問題:
讓我們開始本系列的第一個小節: 標量,向量,矩陣,張量。
在整個機器學習中,你需要把數據交給計算機來處理,這就要求你把數據數字化,這樣才能運算。
這就要求你理解什麼是張量?
誒?你的標題不是標量,向量,矩陣,張量嗎?爲啥你只要重點標出張量呢?ok,那你就帶着這樣的疑問開始閱讀吧!
深度學習中的數
在深度學習中的數,可以分爲以下幾類:
標量:2
向量:
矩陣:
我們爲了更好的記憶,可以把他們做一下物理意義的比較
標量
標量就是直線上的點。
向量
向量就是平面上的一條線。
矩陣
矩陣就是空間中的一個平面基(不知道什麼是基,你就把他理解成是座標系的x軸,y軸就可以了)。
張量
在更高維度的空間中矩陣可以堆疊成一個體。 感覺就是這樣:
這樣是不是比較有感覺,在深度學習中,把他們統稱爲tensor,張量!張量!張量!張量!
標量就是1維度張量,向量是2維張量,平面是3維張量,以此類推可以到更高的維度。
你可以把矩陣想成是向量的堆疊。例如你把向量 , 拼到一起就是矩陣。
矩陣由行和列組成,像剛纔的矩陣,行爲2,列爲2,他的形狀就記爲2X2。
記住,要使用tensor,先要搞清楚形狀,這是最重要的。
代碼實現
好了,你現在已經知道什麼張量了。
接下來,我們用python的numpy模塊,把標量,向量,矩陣,還有張量表示出來。
環境準備
環境準備可以看視頻
#導入模塊
import numpy as np
標量
#標量,這個沒啥要解釋的。
a = 1
a
輸出:
1
向量
#向量
v1 = np.array([1,3])
print("v1:",v1)
#注意觀察向量的形狀
print("v1 shape:", v1.shape)
輸出:
v1: [1 3]
v1 shape: (2,)
矩陣
#矩陣,看起來就是python中的list套list
m1 = np.array([[1,0],[0,1]])
print("m1:", m1)
print("m1 shape:", m1.shape)
輸出:
m1: [[1 0]
[0 1]]
m1 shape: (2, 2)
張量
#矩陣,看起來就是python中的list套list
t1 = np.array([[[1,0],[0,1]],[[1,0],[0,1]]])
print("t1:", t1)
print("t1 shape:", t1.shape)
輸出:
t1: [[[1 0]
[0 1]]
[[1 0]
[0 1]]]
t1 shape: (2, 2, 2)
恭喜你掌握了人工智能入門的第一個知識點。
如果你感覺很有趣,請點贊,關注,轉發!謝謝! |