深度學習中會經常涉及到張量的維數、向量的維數的概念,我發現自己一直把它們給混淆了,原因是被一些約定俗成的叫法擾亂了,下面來介紹一下它們的區別。
首先,張量的維數等價於張量的階數。0維的張量就是標量,1維的張量就是向量,2維的張量就是矩陣,大於等於3維的張量沒有名稱,統一叫做張量。下面舉例:標量:很簡單,就是一個數,1,2,5,108等等向量:[1,2],[1,2,3],[1,2,3,4],[3,5,67,·······,n]都是向量矩陣:[[1,3],[3,5]],[[1,2,3],[2,3,4],[3,4,5]],[[4,5,6,7,8],[3,4,7,8,9],[2,11,34,56,18]]是矩陣3維張量:[[[1,2],[3,4]],[[1,2],[3,4]]]
但是混淆的地方來了,就是數學裡面會使用3維向量,n維向量的說法,這其實指的是1維張量(即向量)的形狀,即它所含分量的個數,比如[1,3]這個向量的維數為2,它有1和3這兩個分量;[1,2,3,······,4096]這個向量的維數為4096,它有1、2······4096這4096個分量,都是說的向量的形狀。你不能說[1,3]這個“張量”的維數是2,只能說[1,3]這個“1維張量”的維數是2。矩陣也是類似,常常說的n×m階矩陣,這裡的階也是指的矩陣的形狀。那麼,張量的維數和張量的形狀怎麼看呢?
維度要看張量的最左邊有多少個左中括號,有n個,則這個張量就是n維張量[[1,3],[3,5]]最左邊有兩個左中括號,它就2維張量;[[[1,2],[3,4]],[[1,2],[3,4]]]最左邊有三個左中括號,它就3維張量
形狀的第一個元素要看張量最左邊的中括號中有幾個元素,形狀的第二個元素要看張量中最左邊的第二個中括號中有幾個被逗號隔開的元素,形狀的第3,4…n個元素以此類推[[1,3],[3,5]]的最左邊中括號有[1,3]和[3,5]這兩個元素,最左邊的第二個中括號裡有1和3這兩個元素,所以形狀為[2,2];[[[1,2],[3,4]],[[1,2],[3,4]]]的最左邊中括號有[[1,2],[3,4]]和[[1,2],[3,4]]這兩個元素,最左邊的第二個中括號裡有[1,2]和[3,4]這兩個元素,最左邊的第三個中括號裡有1和2這兩個元素,所以形狀為[2,2,2]
在形狀的中括號中有多少個數字,就代表這個張量是多少維的張量。
深度學習中會經常涉及到張量的維數、向量的維數的概念,我發現自己一直把它們給混淆了,原因是被一些約定俗成的叫法擾亂了,下面來介紹一下它們的區別。
首先,張量的維數等價於張量的階數。0維的張量就是標量,1維的張量就是向量,2維的張量就是矩陣,大於等於3維的張量沒有名稱,統一叫做張量。下面舉例:標量:很簡單,就是一個數,1,2,5,108等等向量:[1,2],[1,2,3],[1,2,3,4],[3,5,67,·······,n]都是向量矩陣:[[1,3],[3,5]],[[1,2,3],[2,3,4],[3,4,5]],[[4,5,6,7,8],[3,4,7,8,9],[2,11,34,56,18]]是矩陣3維張量:[[[1,2],[3,4]],[[1,2],[3,4]]]
但是混淆的地方來了,就是數學裡面會使用3維向量,n維向量的說法,這其實指的是1維張量(即向量)的形狀,即它所含分量的個數,比如[1,3]這個向量的維數為2,它有1和3這兩個分量;[1,2,3,······,4096]這個向量的維數為4096,它有1、2······4096這4096個分量,都是說的向量的形狀。你不能說[1,3]這個“張量”的維數是2,只能說[1,3]這個“1維張量”的維數是2。矩陣也是類似,常常說的n×m階矩陣,這裡的階也是指的矩陣的形狀。那麼,張量的維數和張量的形狀怎麼看呢?
維度要看張量的最左邊有多少個左中括號,有n個,則這個張量就是n維張量[[1,3],[3,5]]最左邊有兩個左中括號,它就2維張量;[[[1,2],[3,4]],[[1,2],[3,4]]]最左邊有三個左中括號,它就3維張量
形狀的第一個元素要看張量最左邊的中括號中有幾個元素,形狀的第二個元素要看張量中最左邊的第二個中括號中有幾個被逗號隔開的元素,形狀的第3,4…n個元素以此類推[[1,3],[3,5]]的最左邊中括號有[1,3]和[3,5]這兩個元素,最左邊的第二個中括號裡有1和3這兩個元素,所以形狀為[2,2];[[[1,2],[3,4]],[[1,2],[3,4]]]的最左邊中括號有[[1,2],[3,4]]和[[1,2],[3,4]]這兩個元素,最左邊的第二個中括號裡有[1,2]和[3,4]這兩個元素,最左邊的第三個中括號裡有1和2這兩個元素,所以形狀為[2,2,2]
在形狀的中括號中有多少個數字,就代表這個張量是多少維的張量。