PyTorch中Tensor簡介

PyTorch中所有的操作都是基于Tensor(張量)的,因此理解張量的含義并能夠自由創建張量是十分必要的。

張量是PyTorch中最基本的操作對象。我們可以用數學中的概念來輔助理解一下張量,如圖5-1所示。

  • 標量(Scalar)只具有數值大小,而沒有方向,部分有正負之分,如1、2、3、-10。
  • 矢量(Vector)具有大小和方向,如(3,4)。
  • 矩陣(Matrix)是一個按照長方陣列排列的復數或實數集合,如[[1,2],[3,4]]。

標量、矢量、矩陣都屬于張量,標量是零維張量,向量是一維張量,矩陣是二維張量。張量還可以是三維的、四維的等。

PyTorch的張量與NumPy中的ndarray類似,但是在PyTorch中,張量可以使用GPU進行計算以提高運算性能

5.1.2 ?使用特定數據創建張量

為了更好地理解張量中的矩陣,下面先介紹如何將現有的NumPy矩陣轉換成張量中的矩陣。張量就是PyTorch中的一種矩陣形式,因此PyTorch中集成了將NumPy創建的矩陣數據轉換成張量的方法torch.from_numpy(),示例代碼如下:

import torchimport numpy as npa = np.array([3.0, 4.0, 5.0])b = torch.from_numpy(a)print(b)

輸出結果如下:

tensor([3., 4., 5.], dtype=torch.float64)

還可以直接輸入數據創建,方法是torch.tensor(),輸入數據并指定數據的類型(int/float/double) ,示例代碼如下:

import torch
#直接輸入數據創建
a = torch.tensor([[3, 4, 5],[6, 7, 8]])
print(a)
print(a.type())   
#輸入數據并指定數據類型創建
b = torch.FloatTensor([[3, 4, 5],[6, 7, 8]])
print(b)
print(b.type())

輸出結果如下:

tensor([[3, 4, 5],[6, 7, 8]])
torch.LongTensor
tensor([[3., 4., 5.],[6., 7., 8.]])
torch.FloatTensor

在一些實際應用中,可能會遇到全0矩陣、全1矩陣的情況,這時張量的創建采用torch.full方法創建,torch.full()方法接收參數為shape,x,輸出一個shape大小的元素全為x的張量,相關代碼如下:

import torch
a = torch.full((2,3),1)
print(a)
print(a.type())

輸出結果如下:

tensor([[1, 1, 1],[1, 1, 1]])
torch.LongTensor

有些時候,可能會使用一些連續的數據,類似于等差序列。這時可以使用torch.arange()方法,它接收三個參數,前兩個是邊界值,后一個是步長(Step),輸出邊界值范圍內步長的等差序列組成的它張量。

import torch
#torch.arange()方法創建
a = torch.arange(0,10,2)
print(a)
print(a.type())

輸出結果如下:

tensor([0, 2, 4, 6, 8])
torch.LongTensor

《PyTorch深度學習與企業級項目實戰(人工智能技術叢書)》(宋立桓,宋立林)【摘要 書評 試讀】- 京東圖書 (jd.com)

本文節選自《PyTorch深度學習與企業級項目實戰》,獲出版社和作者授權發布。

【贈書活動第5期】《PyTorch深度學習與企業級項目實戰》-CSDN博客

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

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

相關文章

c#數據庫的增刪改查

** 安裝數據庫包 ** 在使用 SQLite 數據庫時,你需要安裝適當的 NuGet 包來提供與 SQLite 的集成。 1.打開 Visual Studio 中的你的項目 2.在頂部菜單欄中選擇 “項目” -> “管理 NuGet 包” 3.在 NuGet 管理器中搜索 “System.Data.SQLite” 4.找到適合你項目…

【openlayers系統學習】1.1渲染GeoJSON,添加link交互

一、渲染GeoJSON 在進入編輯之前,我們將看一下使用矢量源和圖層進行基本要素渲染。Workshop在 data? 目錄中包含一個 countries.json? GeoJSON文件。我們首先加載該數據并將其渲染在地圖上。 首先,編輯 index.html? 以便向地圖添加深色背景&#xf…

Vue 組件的生命周期鉤子有哪些用途是什么

Vue 組件的生命周期鉤子提供了在不同階段執行特定邏輯的機會,這些鉤子在組件的創建、掛載、更新、銷毀等過程中被調用。以下是每個生命周期鉤子的常見用途: beforeCreate 用途:由于在這個階段,組件的 data、computed、methods 和…

使用llama.cpp實現LLM大模型的格式轉換、量化、推理、部署

使用llama.cpp實現LLM大模型的量化、推理、部署 大模型的格式轉換、量化、推理、部署概述克隆和編譯環境準備模型格式轉換GGUF格式bin格式 模型量化模型加載與推理模型API服務模型API服務(第三方)GPU推理 大模型的格式轉換、量化、推理、部署 概述 llama.cpp的主要目標是能夠在…

【代碼隨想錄算法訓練營第37期 第十五天 | LeetCode226.翻轉二叉樹、101.對稱二叉樹 2】

代碼隨想錄算法訓練營第37期 第十五天 | LeetCode226.翻轉二叉樹、101.對稱二叉樹 2 一、226.翻轉二叉樹 解題代碼C: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : …

【軟考中級 軟件設計師】數據結構

數據結構是計算機科學中一個基礎且重要的概念,它研究數據的存儲結構以及在此結構上執行的各種操作。在準備軟考中級-軟件設計師考試時,掌握好數據結構部分對于通過考試至關重要。下面是一些核心知識點概覽: 基本概念: 數據結構定義…

VBA_MF系列技術資料1-615

MF系列VBA技術資料1-615 為了讓廣大學員在VBA編程中有切實可行的思路及有效的提高自己的編程技巧,我參考大量的資料,并結合自己的經驗總結了這份MF系列VBA技術綜合資料,而且開放源碼(MF04除外),其中MF01-0…

spring-boot集成slf4j(二)logback配置詳解

一、configuration 根節點:configuration,作為頂級標簽, 可以用來配置一些lockback的全局屬性,常見的屬性如下: (1)scan“true” :scan是否開啟自動掃描,監控配置文件更…

el-table 組件實現 “合并單元格 + N行數據小計” 功能

目錄 需求 - 要實現的效果初始代碼代碼升級(可供多個表格使用)CommonTable.vue 子組件 使用子組件1 - 父組件 - 圖1~圖3使用效果展示 使用子組件2 - 父組件 - 圖4使用效果展示 注意【代碼優化 - 解決bug】 需求 - 要實現的效果 父組件中 info 數據示例 …

內網安全之證書服務基礎知識

PKI公鑰基礎設施 PKI(Public Key Infrastructure)公鑰基礎設施,是提供公鑰加密和數字簽名服務的系統或平臺,是一個包括硬件、軟件、人員、策略和規程的集合,用來實現基于公鑰密碼體制的密鑰和證書的產生、管理、存儲、分發和撤銷等功能。企業…

Android Debug Bridge(ADB)命令使用

引言 Android Debug Bridge(ADB)是一套功能強大的命令行工具,它為Android開發者和高級用戶提供了與Android設備通信的能力。無論是進行應用開發、測試還是執行日常設備管理任務,ADB都是不可或缺的工具。本文將詳細介紹一些常用的…

element-plus:踩坑日記

el-table Q:有fixed屬性時,無數據時,可能出現底部邊框消失的bug 現象: 解決方法: .el-table__empty-block {border-bottom: 1px solid var(--el-table-border-color); } el-collapse 折疊面板 Q:標題上…

云平臺的安全能力提升解決方案

提升云平臺的安全能力是確保數據和服務安全的關鍵步驟。針對大型云平臺所面臨的云上安全建設問題,安全狗提供完整的一站式云安全解決方案,充分匹配云平臺安全管理方的需求和云租戶的安全需求。協助大型云平臺建設全網安全態勢感知、統一風險管理、統一資…

加強堆(大根堆)

way:看上去好像就是加了個indexMap記錄節點在數組heap中的下標,然后就是可以查到某個元素是否在堆里并且可以進行位置的調整,普通的堆是沒法知道元素是不是在的,只能彈堆頂元素,插入到堆尾這樣子。如果覺得heapSize有點…

PCIE協議-4-物理層邏輯模塊

4.1 簡介 物理層將事務層和數據鏈路層與用于鏈路數據交換的信令技術隔離開來。物理層被劃分為邏輯物理層和電氣物理層子模塊(見圖4-1)。 4.2 邏輯物理層子模塊 邏輯子模塊有兩個主要部分:一個發送部分,它準備從數據鏈路層傳遞過…

Spring 中常用的手動裝載 bean 方法

在 Spring 的 bean 裝載條件中,雖然 Spring 給我們提供了非常好用便捷的 Condition 相關注解,但是很多時候 Condition 相關注解并不滿足我們的需求,我需要更復雜的條件手動控制是否裝置 bean。這個時候我們就可以實現 Spring 為我們提供的幾個…

域名DNS添加CAA記錄

目錄 概述 檢測CAA記錄 添加CAA記錄 概述 DNS CAA(Certificate Authority Authorization)記錄是一種不太常見的DNS記錄類型,它主要用于鎖定證書頒發機構(CA)列表,以確保只有特定的CA可以為某個域名頒發SSL/TLS證書。CAA記錄是保護域名免受釣魚攻擊的安全措施,通過限制…

v-md-editor和SSE實現ChatGPT的打字機式輸出

概述 不論是GPT還是文心一言,在回答的時候類似于打字機式的將答案呈現給我們,這樣的交互一方面比較友好,另一方面,當答案比較多、生成比較慢的時候也能爭取一些答案的生成時間。本文后端使用express和stream,使用SSE將…

Boosting Cache Performance by Access Time Measurements——論文泛讀

TOC 2023 Paper 論文閱讀筆記整理 問題 大多數現代系統利用緩存來減少平均數據訪問時間并優化其性能。當緩存未命中的訪問時間不同時,最大化緩存命中率與最小化平均訪問時間不同。例如:系統使用多種不同存儲介質時,不同存儲介質訪問時間不同…

【C++初階】—— 類和對象 (上)

📝個人主頁🌹:EterNity_TiMe_ ?收錄專欄?:C “ 登神長階 ” 🌹🌹期待您的關注 🌹🌹 類和對象 1. 初步認識C2. 類的引入3. 類的定義聲明和定義全部放在類體中聲明和定義分開存放 4.…