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

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

2023-05-11 08:06:43 其他

張量(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/552139.html

標籤:其他

上一篇:安全應急回應中心SRC

下一篇:返回列表

標籤雲
其他(158808) 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 08:06:43 more
  • 安全應急回應中心SRC

    安全應急回應中心SRC 一、SRC介紹 ? 安全應急回應中心(SRC, Security Response Center),是企業用于對外接收來自用戶發現并報告的產品安全漏洞的站點。 SRC平臺 ? 報告平臺是指由獨立的第三方公司成立的綜合性的報告平臺。國內補天平臺、盒子平臺、火線平臺等均屬于該模式 ......

    uj5u.com 2023-05-11 08:06:28 more
  • 演算法設計與分析

    演算法設計與分析 簡答 以比較為基礎的檢索演算法的時間下界是O(logn);==Ω還是O?== 以比較為基礎的分類演算法的時間下界是Ω(nlogn); 簡要說明理由:==理由== 演算法的五大特性:確定性,能行性,輸入,輸出,有窮性。 而計算程序只滿足前4條特性,不滿足有窮性 最優性原理: 無論程序的初始狀 ......

    uj5u.com 2023-05-11 08:06:23 more
  • 一位27歲軟體測驗員,測驗在職近5年,月薪不到2W,擔心被應屆生取代

    作業了近5年,一個月工資不到20K,擔心被應屆畢業生取代!互聯網的快速發展伴隨著員工適者生存的加速,測驗員的薪資也在不斷增長,以3年、5年、8年+為一條分水嶺。如果人們的能力和體力不夠,他們就會被淘汰。看起來生動的作業生活卻讓許多人焦慮不安。 ......

    uj5u.com 2023-05-11 08:05:58 more
  • 如何衡量軟體測驗的績效

    績效的主要目標是保證產品或QA程序的一致性。它也可以是一個管理系統,允許管理者根據收集到的資料做出決定。程序的績效衡量標準的實施應該涉及到整個組織。不同團隊的衡量標準可能會有所不同。 什么是績效衡量? 績效衡量是管理和了解以下方面: 專案進展如何? 專案中的偏差及其原因? 資源的利用情況如何? 是否 ......

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

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

    uj5u.com 2023-05-11 07:52:48 more
  • 最佳軟體測驗基礎入門教程2基礎

    基礎 本章解釋了軟體測驗的基本概念,這些概念將在后面的章節中得到應用。介紹了軟體測驗的七個基本原則,本章的大部分內容都是用來解釋測驗程序的細節和它所涉及的各種活動。最后,我們將討論測驗中涉及的心理問題,以及如何避免或解決這些問題。 2.1概念和動機 質量要求 工業生產的產品通常會被抽查,以確保它們滿 ......

    uj5u.com 2023-05-11 07:50:53 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:50:29 more
  • OCR 文字檢測,可微的二值化(Differentiable Binarization --- DB)

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

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

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

    uj5u.com 2023-05-11 07:47:45 more