【pytorch03】pytorch基本數據類型

數據類型
問題:String類型在pytorch中如何表示?
很遺憾,pytorch不是完備的語言庫,而是面向數據計算的一個GPU加速庫,因此沒有內建對string的支持

我們會在做NLP的時候會遇到all string處理的問題,就比如說一句話,把這句話翻譯成另外一個國家的語言,這里面肯定是要注意string的,那么作為深度學習的一個GPU加速庫pytorch免不了要處理string,但是它內部又沒有string的自帶的表示方法,那如何表達string呢?

兩種表示方法:

  • One-hot
    • [0,1,0,0,…]
  • Embedding
    • Word2vec
    • glove

one-hot之前已經講過,這里簡單回顧,比如要表達貓狗這兩類,用一維向量[0,1]來表示cat,[1,0]來表示dog,因此是一種編碼表示,我們其實是沒有內建string的支持的,只是用一種數字的方法來替代了

26個字母只要編碼為一個長度為26的向量,但對于漢字或者多國的語言,甚至其他的單詞(英語單詞常用的單詞有上萬個),那么單詞如果用一個上萬列向量的編碼來表示,整個向量會變得會變得非常稀疏(也就是大部分元素是0,只有一個元素位置是1),更致命的是這個向量會因為語言之間(例如 i like 或 i love)的語義相關性(i dislike)語義相反性,但對于one-hot編碼來說每一個位置代表一個意思,因此兩個單詞之間的相關性并沒有在one-hot中得到體現,怎么解決這個問題?

在NLP里面有一個專門的embedding layer,就是解決怎么用數字的方法來表示一個語言并具有相關性的方法

數據類型
注意:一個tensor有可能被放置在CPU上,也有可能被放置在GPU上,對于GPU上的tensor,即使我們覺得可能它和CPU上的tensor是一個東西,但是對于pytorch來說并不是,GPU上的tensor會在中間加cuda

在這里插入圖片描述
x.cuda()會返回gpu上的一個引用
數據一樣,放的位置不一樣,造成的類型不一樣
在這里插入圖片描述
標量
1.3是0維,但是[1.3]是1維,長度為1的Tensor
標量
問題:dimension為0的數據用來表示什么?
最常見的就是計算loss,計算輸出值跟我們期待的那個值之間的誤差,誤差最終求和平均后會得到一個標量,這個標量就稱之為loss,這個loss用的最多的就是一個dimension為0的標量,如果用instance把它打印出來的話可以看到是一個size為0的某一種數據類型

問題:如何得到變量的shape
在這里插入圖片描述
a.shape對應的是a.size()函數,shape是一個成員,而size()是一個成員函數

dimension為1

數學中叫做向量,pytorch中統一稱之為張量
在這里插入圖片描述
.tensor()的時候指定的是具體的數據
.FloatTensor()的時候是隨機初始化的,只需要接收數據的shape

問題:dimension為1的tensor一般用在哪?
用在bias(偏移量),偏移量的維度一般都是1維的
在這里插入圖片描述
神經網絡線性層的輸入
[28,28]=>[784]
pytorch 0.3之前dimension=0是不存在的
為了區分標量0.3和長度為1的向量[0.3]就引入了dimension=0

如何得到dimension為1向量的shape
在這里插入圖片描述
可以用.shape也可以用.size()函數
問題:如何區分dimension、size(或者叫shape)?
比如說2維的tensor,這個2維的2的意思就是dimension,size是整個shape
dimension就是size的長度
size就是指代的tensor具體的形狀

dimension為2

在這里插入圖片描述
dimension=2經常使用的例子

帶有batch的線性層的輸入,例如1張圖片用784的dimension為1的tensor來表達,但是如果一次要輸入多張圖片怎么辦?

把多張圖片疊在一起,每一張圖片用784位的向量來表示,因此這個tensor的維度就是2,這個tensor的size就是[4,784]

第一個維度的4表示哪一張照片,每一張照片跟著的784這樣的一個維度表示這個照片的具體數據內容

dimension為3

在這里插入圖片描述
對于三維的tensor用一個非常廣泛的使用場景RNN,對于一個RNN來說,一句話有10個單詞,每個單詞用one-hot編碼,比如說用100位這樣的向量來編碼
在這里插入圖片描述
10個單詞word是W,每一句話的feature是F用100位的向量來表示,如[10,100]

如果要一次送入多句話的話我們要將batch插在中間[10,20,100],10個單詞每一次送20句話每一個單詞用一個100維的向量來表示,所以20表示20句句子
在這里插入圖片描述

dimension為4

在這里插入圖片描述
對于4維的tensor適合圖片這種類型CNN
[2,3,28,28]
1是通道數,對于灰色圖片來說通道數是1,彩色圖片的通道數是3
有2張照片,每一張照片有3個通道,每個通道的長寬為28×28

額外知識

除了可以用shape獲取tensor的形狀,還可以用獲取tensor元素的總數4704=2328*28
在這里插入圖片描述
除了len(a.shape)可以返回shape的長度以外(即tensor的維度),a.dim()也可以返回tensor的維度,并且更加直觀

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35466.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35466.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35466.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

華碩PRIME B450M-K主板開啟虛擬化

1.判斷電腦是否開啟了虛擬化 按下CtrlShiftESC打開任務管理器,切換到性能頁面,選擇查看CPU 如果在右下角看到虛擬化:已禁用,則沒有開啟虛擬化 2.進入BIOS 重啟或開機時,按下DEL或F2進入BIOS設置界面。 屏幕提示&am…

SAP系統中如何用事務碼圖形視圖尋找MD04增強開發實施點

在之前發布的文章中,介紹了善用事務碼的圖形視圖以觀察事務的執行流程以及如何在MD04中實施增強以改變生產訂單的顯示順序。本文結合兩者,介紹一下如何利用事務碼的圖形視圖找到增強開發的實施點。 在事務碼中輸入SE93,進入圖形視圖&#xf…

生命在于學習——Python人工智能原理(4.6)

在這里插一句話,我有兩個好兄弟的github項目,感興趣的可以去看一下,star一下,謝謝。 https://github.com/fliggyaa/fscanpoc https://github.com/R0A1NG/Botgate_bypass 四、Python的程序結構與函數 4.1 Python的分支結構 &…

如何將個人電腦做P2V備份到虛擬化平臺

背景:公司員工個人電腦綁定了商用軟件的license,現在員工離職,license又需要使用,電腦就一直被占用。 解決方法:利用VMware Vcenter Converter Standalone將此臺式電腦上載到公司虛擬化平臺上 具體做法,下…

sklearn-learn的安裝

官網:scikit-learn: machine learning in Python — scikit-learn 1.5.0 documentation 是 pip install scikit-learn 不是 pip install sklearn

Leetcode 700:二叉搜索樹中的搜索

給定二叉搜索樹(BST)的根節點 root 和一個整數值 val。 你需要在 BST 中找到節點值等于 val 的節點。 返回以該節點為根的子樹。 如果節點不存在,則返回 null 。 public TreeNode searchBST(TreeNode root, int val) {if(rootnull){return n…

.NET C# 樹遍歷、查詢、拷貝與可視化

.NET C# 樹遍歷、查詢、拷貝與可視化 目錄 .NET C# 樹遍歷、查詢、拷貝與可視化1 組件安裝1.1 NuGet包管理器安裝&#xff1a;1.2 控制臺安裝&#xff1a; 2 接口1.1 ITree\<TTreeNode\>1.2 ITree\<TKey, TTreeNode\>1.3 IObservableTree\<TTreeNode\>1.4 IO…

昇思25天學習打卡營第7天 | 模型訓練

內容介紹&#xff1a; 模型訓練一般分為四個步驟&#xff1a; 1. 構建數據集。 2. 定義神經網絡模型。 3. 定義超參、損失函數及優化器。 4. 輸入數據集進行訓練與評估。 具體內容&#xff1a; 1. 導包 import mindspore from mindspore import nn from mindspore.dataset…

手把手教你使用kimi創建流程圖【實踐篇】

學境思源&#xff0c;一鍵生成論文初稿&#xff1a; AcademicIdeas - 學境思源AI論文寫作 引言 在昨日的文章中&#xff0c;我們介紹了如何使用Kimi生成論文中的流程圖。今天&#xff0c;我們將更進一步&#xff0c;通過實踐案例來展示Kimi在生成流程圖方面的應用。這不僅將加…

【大數據技術原理與應用(概念、存儲、處理、分析與應用)】第1章-大數據概述習題與知識點回顧

文章目錄 單選題多選題知識點回顧幾次信息化浪潮主要解決什么問題&#xff1f;信息科技為大數據時代提供哪些技術支撐&#xff1f;數據產生方式有哪些變革&#xff1f;大數據的發展歷程大數據的四個特點&#xff08;4V&#xff09;大數據對思維方式的影響大數據有哪些關鍵技術&…

burpsuite 抓https的方法(CA證書操作)

https://cloud.tencent.com/developer/article/1391501

軟考《信息系統運行管理員》-1.2信息系統運維

1.2信息系統運維 傳統運維模式&#xff08;軟件&#xff09; 泛化&#xff1a;軟件交付后圍繞其所做的任何工作糾錯&#xff1a;軟件運行中錯誤的發現和改正適應&#xff1a;為適應環境做出的改變用戶支持&#xff1a;為軟件用戶提供的支持 新的不同視角下的運維 “管理”的…

Java 面試指南合集

線程篇 springBoot篇 待更新 黑夜無論怎樣悠長&#xff0c;白晝總會到來。 此文會一直更新哈 如果你希望成功&#xff0c;當以恒心為良友&#xff0c;以經驗為參謀&#xff0c;以當心為兄弟&#xff0c;以希望為哨兵。

拉普拉斯變換與卷積

前面描述 卷積&#xff0c;本文由卷積引入拉普拉斯變換。 拉普拉斯變換就是給傅里葉變換的 iωt 加了個實部&#xff0c;也可以反著理解&#xff0c;原函數乘以 e ? β t e^{-\beta t} e?βt 再做傅里葉變換&#xff0c;本質上都是傅里葉變換的擴展。 加入實部的拉普拉斯變…

【建設方案】智慧園區大數據云平臺建設方案(DOC原件)

大數據云平臺建設技術要點主要包括以下幾個方面&#xff1a; 云計算平臺選擇&#xff1a;選擇安全性高、效率性強、成本可控的云計算平臺&#xff0c;如阿里云、騰訊云等&#xff0c;確保大數據處理的基礎環境穩定可靠。 數據存儲與管理&#xff1a;利用Hadoop、HBase等分布式…

一年Java轉GO|19K|騰訊 CSIG 一二面經

面經哥只做互聯網社招面試經歷分享&#xff0c;關注我&#xff0c;每日推送精選面經&#xff0c;面試前&#xff0c;先找面經哥 背景 學歷&#xff1a;本科工作經驗&#xff1a;一年(不算實習)當前語言&#xff1a;Javabase&#xff1a;武漢部門\崗位&#xff1a;騰訊云? 一…

5000天后的世界:科技引領的未來之路

**你是否想過&#xff0c;5000天后的世界會是什么樣子&#xff1f;** 科技日新月異&#xff0c;改變著我們的生活方式&#xff0c;也引領著人類文明的進程。著名科技思想家凱文凱利在他的著作《5000天后的世界》中&#xff0c;對未來進行了大膽的預測。 **這本書中&#xff0c…

基于微信小程序的在線點餐系統【前后臺+附源碼+LW】

摘 要 隨著社會的發展&#xff0c;社會的各行各業都在利用信息化時代的優勢。計算機的優勢和普及使得各種信息系統的開發成為必需。 點餐小程序&#xff0c;主要的模塊包括實現管理員&#xff1b;管理員用戶&#xff0c;可以對整個系統進行基本的增刪改查&#xff0c;系統的日…

什么是<meta> 標簽

<meta> 標簽是 HTML 文檔頭部 (<head>) 中的一種元數據標簽&#xff0c;用于提供關于 HTML 文檔的信息。雖然它不會直接影響文檔的呈現&#xff0c;但它在搜索引擎優化 (SEO)、瀏覽器行為和文檔元信息方面起著重要作用。以下是一些常見的 <meta> 標簽及其用途…

Opencv+python模板匹配

我們經常玩匹配圖像或者找相似&#xff0c;opencv可以很好實現這個簡單的小功能。 模板是被查找目標的圖像&#xff0c;查找模板在原始圖像中的哪個位置的過程就叫模板匹配。OpenCV提供的matchTemplate()方法就是模板匹配方法&#xff0c;其語法如下&#xff1a; result cv2.…