張量tensor:機器學習的基本資料結構介紹 - Santiago
張量是機器學習系統使用的資料結構,瞭解它們是您應該早期建立的一項基本技能。張量是數字資料的容器。這是我們儲存將在系統中使用的資訊的方式。
三個主要屬性定義張量:
- 等級rank
- 它的形狀shape
- 其資料型別datatype
張量的等級Rank
張量的等級rank是指張量的軸數。例子:
- 矩陣的等級是2,因為它有兩個軸。
- 向量的等級為1,因為它具有單個軸。
張量的形狀Shape
張量的形狀描述了沿每個軸的維數。例:
- 方陣(square matrix)可具有(3,3)維度。
- 等級為3的張量可以具有(2、5、7)維度。
張量的資料型別
張量的資料型別是指其中包含的資料型別。例如,當使用Python的numpy庫,以下是一些受支援的資料型別:
- float32
- float64
- uint8
- int32
- int64
在前面使用了術語“向量”和“矩陣”來指代具有特定等級(分別為1和2)的張量。我們在描述張量時也可以使用這些數學概念。
- 標量scalar
標量(或0維度D的張量)的等級為0,並且包含一個數字。這些也稱為“ 0維張量”。下圖顯示瞭如何使用numpy構造0D張量。注意它的形狀和等級(.ndim屬性。)
import numpy as np; tenseor = np.array(42); tensor.shape(); tensor.ndim |
結果:0
- 向量
向量(或一維張量)的等級為1,代表數字陣列。下面顯示了形狀為(4,)的向量。請注意其等級(.ndim屬性)如何為1。
import numpy as np; tenseor = np.array([8,16,32,64]); tensor.shape(4,); tensor.ndim |
結果:1
- 矩陣
矩陣(或2D張量)的等級為2,代表向量陣列。矩陣的兩個軸通常稱為“行”和“列”。下面顯示了形狀為(3,4)的矩陣。
import numpy as np; tenseor = np.array( [2,10,20,22], [8,16,32,64], [5,10,15,20]); tensor.shape(3,4); tensor.ndim |
結果:2
- 高維
可以透過將低維張量包裝在陣列中來獲得高維張量(3D,4D等)。例如,將2D張量打包成一個陣列可得到3D張量。將其包裝在另一個陣列中可以得到4D張量,依此類推。
import numpy as np; tenseor = np.array( [[[2,10,20,22], [8,16,32,64], [5,10,15,20]], |
[[1,11,21,31] |
[2,12,22,32] |
[3,13,23,33]); tensor.shape(2,3,4); tensor.ndim |
結果:3
以下是一些常見的張量表示形式:
- 向量:1D-(特徵feature)
- 序列Sequences:2D-(時間步長timesteps,特徵)
- 圖片:3D-(高度,寬度,通道)
- 影片:4D-(幀,高度,寬度,通道)
通常,機器學習演算法一次處理一個資料子集(稱為“批處理”。)使用一批資料時,張量的第一個軸保留用於批處理的大小(樣本數)。
例如,如果您處理2D張量(矩陣),則它們中的一批將總共具有3個維: (樣本,行,列)請注意,第一個軸是批次中的矩陣數。
按照相同的邏輯,可以將一批影像表示為4D張量:
- (樣本,高度,寬度,通道)
以及一批影片作為5D張量:
- (樣本,幀,高度,寬度,通道)
相關文章
- matlab練習程式(結構張量structure tensor)MatlabStruct
- Pytorch入門:tensor張量的構建PyTorch
- 機器學習基本函式介紹機器學習函式
- Pytorch基礎-tensor資料結構PyTorch資料結構
- tensorflow+入門筆記︱基本張量tensor理解與tensorflow執行結構與相關報錯筆記
- Redis 學習-資料結構基本簡介Redis資料結構
- JavaScript資料結構之連結串列--介紹JavaScript資料結構
- 張量(Tensor)、標量(scalar)、向量(vector)、矩陣(matrix)矩陣
- [翻譯]資料結構——trie樹介紹資料結構
- 資料結構初階--二叉樹介紹(基本性質+堆實現順序結構)資料結構二叉樹
- caffe的基本資料結構資料結構
- 常見資料結構及特點介紹資料結構
- python演算法與資料結構-資料結構中常用樹的介紹(45)Python演算法資料結構
- einsum函式介紹-張量常用操作函式
- 4-1張量的結構操作
- 基本資料結構梳理資料結構
- Tuxedo資料buffer基本型別介紹UX型別
- 資料結構的基本概念資料結構
- Redis介紹、使用、資料結構和叢集模式總結Redis資料結構模式
- PyTorch Geometric Temporal 介紹 —— 資料結構和RGCN的概念PyTorch資料結構GC
- Redis中5種資料結構的使用場景介紹Redis資料結構
- 七、基本資料結構(樹形結構)資料結構
- python演算法與資料結構-演算法和資料結構介紹(31)Python演算法資料結構
- 機器學習之Numpy與張量機器學習
- c++基本資料結構C++資料結構
- Python基本資料結構Python資料結構
- golang資料型別基本介紹與使用Golang資料型別
- 【資料結構】樹的基本知識資料結構
- Python中pandas是什麼?資料結構介紹!Python資料結構
- 資料結構簡介資料結構
- solr叢集構建的基本流程介紹Solr
- [大資料][機器學習]之Model Card(模型卡片)介紹大資料機器學習模型
- SAP PLM 介紹資料連結
- Redis基本資料結構之ZSetRedis資料結構
- 基本資料結構演算法資料結構演算法
- Redis概述及基本資料結構Redis資料結構
- javascript資料結構之順序查詢簡單介紹JavaScript資料結構
- 十五分鐘介紹 Redis資料結構--不錯(轉)Redis資料結構