主頁 >  其他 > 張量(Tensor)、標量(scalar)、向量(vector)、矩陣(matrix)

張量(Tensor)、標量(scalar)、向量(vector)、矩陣(matrix)

2023-05-11 07:44:09 其他

張量(Tensor):Tensor = multi-dimensional array of numbers 張量是一個多維陣列,它是標量,向量,矩陣的高維擴展 ,是一個資料容器,張量是矩陣向任意維度的推廣

注意,張量的維度(dimension)通常叫作軸(axis), 張量軸的個數也叫作階(rank)]

標量(scalar):只有一個數字的張量叫標量(也叫標量張量、零維張量、0D 張量)

x = np.array(12)
print(x.ndim) 可以用 ndim 屬性來查看一個 Numpy 張量的軸的個數,標量張量有 0 個軸( ndim == 0 ),

向量(vector):數字組成的陣列叫作向量(vector)或一維張量(1D 張量),一維張量只有一個軸,下面是一個 Numpy 向量

np.array([12, 3, 6, 14, 7])
這個向量有 5 個元素,所以被稱為 5D 向量,不要把 5D 向量和 5D 張量弄混! 5D 向量只有一個軸,沿著軸有 5 個維度,而 5D 張量有 5 個軸(沿著每個軸可能有任意個維度)

矩陣(matrix):是一個按照長方陣列排列的復數或實數集合,矩陣是二維張量(2D 張量)

np.array([[5, 78, 2, 34, 0], [6, 79, 3, 35, 1], [7, 80, 4, 36, 2]])
向量組成的陣列叫作矩陣(matrix)或二維張量(2D 張量),矩陣有 2 個軸(通常叫作行和列),你可以將矩陣直觀地理解為數字組成的矩形網格,下面是一個 Numpy 矩陣,

3D 張量n 維張量
將多個矩陣組合成一個新的陣列,可以得到一個 3D 張量,你可以將其直觀地理解為數字組成的立方體,下面是一個 Numpy 的 3D 張量,

np.array([[[5, 78, 2, 34, 0],
           [6, 79, 3, 35, 1],
           [7, 80, 4, 36, 2]],

          [[5, 78, 2, 34, 0],
           [6, 79, 3, 35, 1],
           [7, 80, 4, 36, 2]],

          [[5, 78, 2, 34, 0],
           [6, 79, 3, 35, 1],
           [7, 80, 4, 36, 2]]])

將多個 3D 張量組合成一個陣列,可以創建一個 4D 張量,以此類推,深度學習處理的一般是 0D 到 4D 的張量,但處理視頻資料時可能會遇到 5D 張量,

image

image

張量屬性

張量是由以下三個關鍵屬性來定義的,

  • 軸的個數(階):例如,3D 張量有 3 個軸,矩陣有 2 個軸,這在 Numpy 等 Python 庫中也叫張量的 ndim ,
  • 形狀(shape):這是一個整數元組,表示張量沿每個軸的維度大小(元素個數),例如,前面矩陣示例的形狀為 (3, 5) ,3D 張量示例的形狀為 (3, 3, 5) ,向量的形狀只包含一個元素,比如 (5,) ,而標量的形狀為空,即 () ,(張量的形狀)
  • 資料型別(dtype):這是張量中所包含資料的型別,例如,張量的型別可以是 float32 、 uint8 、 float64 等,在極少數情況下,你可能會遇到字符( char )張量,注意:Numpy(以及大多數其他庫)中不存在字串張量,因為張量存盤在預先分配的連續記憶體段中,而字串的長度是可變的,無法用這種方式存盤,

data:    Tensor的值;
dtype:    Tensor的資料型別;
shape:    Tensor的形狀;
device:    Tensor所在的設備(CPU/GPU);
requires_grad:    是否需要梯度;
grad:    Tensor的梯度;
grad_fn:    創建Tensor的函式;
is_leaf:    是否是葉子節點

image

資料張量

向量資料:2D 張量,形狀為 (samples, features)

這是最常見的資料,對于這種資料集,每個資料點都被編碼為一個向量,因此一個資料批量就被編碼為 2D 張量(即向量組成的陣列),其中第一個軸是樣本軸,第二個軸是特征軸,
例子:

  • 人口統計資料集,其中包括每個人的年齡、郵編和收入,每個人可以表示為包含 3 個值的向量,而整個資料集包含 100 000 個人,因此可以存盤在形狀為 (100000, 3) 的 2D張量中,
  • 文本檔案資料集,我們將每個檔案表示為每個單詞在其中出現的次數(字典中包含20 000 個常見單詞),每個檔案可以被編碼為包含 20 000 個值的向量(每個值對應于字典中每個單詞的出現次數),整個資料集包含 500 個檔案,因此可以存盤在形狀為(500, 20000) 的張量中,

時間序列資料或序列資料:3D 張量,形狀為 (samples, timesteps, features)

當時間(或序列順序)對于資料很重要時,應該將資料存盤在帶有時間軸的 3D 張量中,每個樣本可以被編碼為一個向量序列(即 2D 張量),因此一個資料批量就被編碼為一個 3D 張量(見下圖)
image
根據慣例,時間軸始終是第 2 個軸(索引為 1 的軸),

我們來看幾個例子,

  • 股票價格資料集,每一分鐘,我們將股票的當前價格、前一分鐘的最高價格和前一分鐘的最低價格保存下來,因此每分鐘被編碼為一個 3D 向量,整個交易日被編碼為一個形狀為 (390, 3) 的 2D 張量(一個交易日有 390 分鐘),而 250 天的資料則可以保存在一個形狀為 (250, 390, 3) 的 3D 張量中,這里每個樣本是一天的股票資料,
  • 推文資料集,我們將每條推文編碼為 280 個字符組成的序列,而每個字符又來自于 128個字符組成的字母表,在這種情況下,每個字符可以被編碼為大小為 128 的二進制向量(只有在該字符對應的索引位置取值為 1,其他元素都為 0),那么每條推文可以被編碼為一個形狀為 (280, 128) 的 2D 張量,而包含 100 萬條推文的資料集則可以存盤在一個形狀為 (1000000, 280, 128) 的張量中,

影像:4D張量,形狀為 (samples, height, width, channels) 或 (samples, channels,height, width) ,

影像通常具有三個維度:高度、寬度和顏色深度,雖然灰度影像(比如 MNIST 數字影像)只有一個顏色通道,因此可以保存在 2D 張量中,但按照慣例,影像張量始終都是 3D 張量,灰度影像的彩色通道只有一維,因此,如果影像大小為 256×256,那么 128 張灰度影像組成的批量可以保存在一個形狀為 (128, 256, 256, 1) 的張量中,而 128 張彩色影像組成的批量則可以保存在一個形狀為 (128, 256, 256, 3) 的張量中,
影像張量的形狀有兩種約定:通道在后(channels-last)的約定(在 TensorFlow 中使用)和通道在前(channels-first)的約定(在 Theano 中使用),Google 的 TensorFlow 機器學習框架將顏色深度軸放在最后: (samples, height, width, color_depth) ,與此相反,Theano將影像深度軸放在批量軸之后: (samples, color_depth, height, width) ,如果采用 Theano 約定,前面的兩個例子將變成 (128, 1, 256, 256) 和 (128, 3, 256, 256) ,Keras 框架同時支持這兩種格式,

如下圖所示是一張普通的水果圖片,按照RGB三原色表示,其可以拆分為紅色、綠色和藍色的三張灰度圖片,如果將這種表示方法用張量的形式寫出來,就是圖中最下方的那張表格
image
image
圖中只顯示了前5行、320列的資料,每個方格代表一個像素點,其中的資料[1.0, 1.0, 1.0]即為顏色,假設用[1.0, 0, 0]表示紅色,[0, 1.0, 0]表示綠色,[0, 0, 1.0]表示藍色,那么如圖所示,前面5行的資料則全是白色

用四階張量表示一個包含多張圖片的資料集,其中的四個維度分別是:圖片在資料集中的編號,圖片高度、寬度,以及色彩資料,

視頻:5D張量,形狀為 (samples, frames, height, width, channels) 或 (samples,frames, channels, height, width)

視頻資料是現實生活中需要用到 5D 張量的少數資料型別之一,視頻可以看作一系列幀,每一幀都是一張彩色影像,由于每一幀都可以保存在一個形狀為 (height, width, color_depth) 的 3D 張量中,因此一系列幀可以保存在一個形狀為 (frames, height, width,color_depth) 的 4D 張量中,而不同視頻組成的批量則可以保存在一個 5D 張量中,其形狀為(samples, frames, height, width, color_depth) ,

舉個例子,一個以每秒 4 幀采樣的 60 秒 YouTube 視頻片段,視頻尺寸為 144×256,這個視頻共有 240 幀,4 個這樣的視頻片段組成的批量將保存在形狀為 (4, 240, 144, 256, 3)的張量中,總共有 106 168 320 個值!如果張量的資料型別( dtype )是 float32 ,每個值都是32 位,那么這個張量共有 405MB,好大!你在現實生活中遇到的視頻要小得多,因為它們不以float32 格式存盤,而且通常被大大壓縮,比如 MPEG 格式,

image
image
image
image

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552124.html

標籤:其他

上一篇:OCR 文字檢測,可微的二值化(Differentiable Binarization --- DB)

下一篇:返回列表

標籤雲
其他(158793) Python(38125) JavaScript(25413) Java(18025) C(15225) 區塊鏈(8264) C#(7972) AI(7469) 爪哇(7425) MySQL(7175) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5338) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4570) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1972) 功能(1967) Web開發(1951) HtmlCss(1935) python-3.x(1918) 弹簧靴(1913) C++(1913) xml(1889) PostgreSQL(1875) .NETCore(1860) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 張量(Tensor)、標量(scalar)、向量(vector)、矩陣(matrix)

    張量(Tensor):Tensor = multi-dimensional array of numbers 張量是一個多維陣列,它是標量,向量,矩陣的高維擴展 ,是一個資料容器,張量是矩陣向任意維度的推廣 注意,張量的維度(dimension)通常叫作軸(axis), 張量軸的個數也叫作階(ran ......

    uj5u.com 2023-05-11 07:44:09 more
  • OCR 文字檢測,可微的二值化(Differentiable Binarization --- DB)

    百度飛槳(PaddlePaddle) - PaddleOCR 文字識別簡單使用 影像二值化 影像二值化( Image Binarization),指將影像上的像素點灰度值設為0或255,將整個影像呈現出明顯的黑白效果程序,二值影像每個像素只有兩種取值:要么純黑,要么純白 影像二值化,有利于影像的進一 ......

    uj5u.com 2023-05-11 07:43:29 more
  • 探討AIGC的崛起歷程,淺析其背后技術發展

    摘要:本文主要討論了AIGC(人工智能生成內容)的發展歷程、現狀、應用,淺析其背后技術發展、與華為云的聯系,以及面臨的挑戰和展望。 本文分享自華為云社區《AIGC:人工智能生成內容的崛起與未來展望》,作者:杜甫蓋房子。 AIGC被認為是繼專業生成內容(PGC)和用戶生成內容(UGC)之后,利用人工智 ......

    uj5u.com 2023-05-11 07:42:53 more
  • 無需代碼繪制人工神經網路ANN模型結構圖的方法

    本文介紹幾種基于在線網頁或軟體的、不用代碼的神經網路模型結構可視化繪圖方法。 之前向大家介紹了一種基于Python第三方ann_visualizer模塊的神經網路結構可視化方法,大家可以直接點擊文章Python繪制神經網路模型圖進行查看;這一方法可以對Dense隱藏層以及MaxPooling層、Dr ......

    uj5u.com 2023-05-11 07:42:15 more
  • 從原理到應用,人人都懂的ChatGPT指南

    如何充分發揮ChatGPT潛能,已是眾多企業關注的焦點。但是,這種變化對員工來說未必是好事情。IBM計劃用AI替代7800個作業崗位,游戲公司使用MidJourney削減原畫師人數......此類新聞屢見不鮮。理解并應用這項新技術,對于職場人來說重要性與日俱增。 ......

    uj5u.com 2023-05-11 07:41:43 more
  • UE5 材質 運動的扭曲效果

    前言 本篇使用UE5的材質系統實作運動的扭曲效果,并解決他的重復性 紋理變換 總結思路 為uv坐標添加time節點 實作 如下圖所示,Texcoord指定uv起始坐標,提供一個float2變數和Time節點相乘(這樣對Time有控制權),將相乘結果與uv坐標相加,最后傳給采樣器 扭曲效果 原理 由于 ......

    uj5u.com 2023-05-11 07:40:25 more
  • CSP-何以包郵?

    題目描述 新學期伊始,適逢頓頓書城有購書滿 x 元包郵的活動,小 P 同學欣然前往準備買些參考書。 一番瀏覽后,小 P 初步篩選出 n 本書加入購物車中,其中第 i 本(1≤i≤n)的價格為 ai 元。 考慮到預算有限,在最終付款前小 P 決定再從購物車中刪去幾本書(也可以不刪),使得剩余圖書的價格 ......

    uj5u.com 2023-05-11 07:40:00 more
  • Windows的Mysql5.7社區版的安裝詳細操作,從無到有,安裝配置一條龍

    換了一個電腦,所有軟體、環境都得重新來安裝一次,安裝到Mysql的時候,發現網上有兩種安裝方式,一種是Mysql的壓縮包安裝方式,這種方式直接到官網下載Mysql的壓縮包,解壓之后做些配置就可以了,另一種是Mysql的Installer一站式的安裝,這種方法步驟相對來說少點,但是要先安裝個Insta ......

    uj5u.com 2023-05-11 07:39:24 more
  • 流媒體協議之nginx-rtmp服務部署20230510

    流媒體協議之nginx-rtmp服務部署 1.簡介 nginx-rtmp服務是指使用nginx服務器和nignx-rtmp-moudle開源組件,實作rtmp協議服務端。本文介紹的如何將nginx-rtmp服務部署在linux服務器上 2.原始碼下載 2.1.nginx wget http://ngi ......

    uj5u.com 2023-05-11 07:39:02 more
  • 2分鐘快速上手流水線的創建與運行

    摘要:通過流水線新手體驗模板,體驗一條含代碼檢查、構建階段、部署發布常用流水線的創建與執行。 本文分享自華為云社區《2分鐘快速上手流水線的創建與運行》,作者:華為云PaaS服務小智。 體驗簡介 涉及服務簡介 軟體持續交付流水線CodeArts Pipeline是華為云軟體開發生產線CodeArts的 ......

    uj5u.com 2023-05-11 07:37:36 more