Pytorch中一些重要的經典操作和簡單講解

Pytorch中一些重要的經典操作和簡單講解

形狀變換操作

reshape() / view()

import torchx = torch.randn(2, 3, 4)
print(f"原始形狀: {x.shape}")# reshape可以處理非連續張量
y = x.reshape(6, 4)
print(f"reshape后: {y.shape}")# view要求張量在內存中連續
z = x.view(2, 12)
print(f"view后: {z.shape}")

transpose() / permute()

# transpose交換兩個維度
x = torch.randn(2, 3, 4)
y = x.transpose(0, 2)  # 交換第0和第2維
print(f"transpose后: {y.shape}")  # torch.Size([4, 3, 2])# permute重新排列所有維度
z = x.permute(2, 0, 1)  # 將維度重排為 (4, 2, 3)
print(f"permute后: {z.shape}")

拼接和分割操作

cat() / stack()

# cat在現有維度上拼接
x1 = torch.randn(2, 3)
x2 = torch.randn(2, 3)# 在第0維拼接
cat_dim0 = torch.cat([x1, x2], dim=0)  # (4, 3)
# 在第1維拼接
cat_dim1 = torch.cat([x1, x2], dim=1)  # (2, 6)# stack創建新維度并拼接
stacked = torch.stack([x1, x2], dim=0)  # (2, 2, 3)

chunk() / split()

x = torch.randn(6, 4)# chunk均勻分割
chunks = torch.chunk(x, 3, dim=0)  # 分成3塊,每塊(2, 4)# split按指定大小分割
splits = torch.split(x, 2, dim=0)  # 每塊大小為2
splits_uneven = torch.split(x, [1, 2, 3], dim=0)  # 不均勻分割

索引和選擇操作

gather() / scatter()

# gather根據索引收集元素
x = torch.randn(3, 4)
indices = torch.tensor([[0, 1], [2, 3], [1, 0]])
gathered = torch.gather(x, 1, indices)  # (3, 2)# scatter根據索引分散元素
src = torch.randn(3, 2)
scattered = torch.zeros(3, 4).scatter_(1, indices, src)

masked_select() / where()

x = torch.randn(3, 4)
mask = x > 0# 選擇滿足條件的元素
selected = torch.masked_select(x, mask)# 條件選擇
y = torch.randn(3, 4)
result = torch.where(mask, x, y)  # mask為True選x,否則選y

數學運算操作

clamp() / clip()

x = torch.randn(3, 4)# 限制數值范圍
clamped = torch.clamp(x, min=-1, max=1)
# 等價于
clipped = torch.clip(x, -1, 1)

norm() / normalize()

x = torch.randn(3, 4)# 計算范數
l2_norm = torch.norm(x, p=2, dim=1)  # L2范數
l1_norm = torch.norm(x, p=1, dim=1)  # L1范數# 歸一化
normalized = torch.nn.functional.normalize(x, p=2, dim=1)

統計運算操作

mean() / sum() / std()

x = torch.randn(3, 4, 5)# 各種統計量
mean_all = x.mean()  # 全局均值
mean_dim = x.mean(dim=1)  # 沿第1維求均值
sum_keepdim = x.sum(dim=1, keepdim=True)  # 保持維度# 最值操作
max_val, max_idx = torch.max(x, dim=1)
min_val, min_idx = torch.min(x, dim=1)

廣播和重復操作

expand() / repeat()

x = torch.randn(1, 3)# expand不復制數據,只是改變視圖
expanded = x.expand(4, 3)  # (4, 3)# repeat實際復制數據
repeated = x.repeat(4, 2)  # (4, 6)

tile() / repeat_interleave()

x = torch.tensor([1, 2, 3])# tile像numpy的tile
tiled = x.tile(2, 3)  # 重復2次每行,3次每列# repeat_interleave每個元素重復
interleaved = x.repeat_interleave(2)  # [1, 1, 2, 2, 3, 3]

類型轉換操作

to() / type() / cast()

x = torch.randn(3, 4)# 類型轉換
x_int = x.to(torch.int32)
x_float = x.type(torch.float64)
x_cuda = x.to('cuda')  # 移到GPU(如果可用)# 設備轉換
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
x_device = x.to(device)

在深度學習領域,這類張量運算操作具有極高的應用頻率,尤其在數據預處理、模型架構構建及推理后處理等關鍵環節中不可或缺。熟練掌握此類算子的應用邏輯,能夠顯著優化張量數據的處理流程,提升深度學習任務的執行效率與工程實現效能。

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

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

相關文章

ubuntu下nginx

我用的是ubuntu22 配置文件的準確位置 靜態網頁的存放位置 放大看到在靜態文件部署的配置路徑 該路徑下面有一個default文件查看 針對上圖的解析如下: 找到root /var/www/html 我嘗試把自己的一個index文件設置為默認,復制到/var/www/html下 ctrl加…

Git使用手冊保姆級教程

Git 使用手冊 一、Git 簡介與安裝 什么是Git? ? Git 是一個分布式版本控制系統,用于跟蹤文件變化,支持多人協作開發。 安裝步驟 ? Windows:通過 Git官網 下載安裝包,按默認配置安裝即可。 ? macOS&#xff1a…

k8s Headless Service

Kubernetes 無頭服務(Headless Service)配置與使用場景 1.無頭服務概述 無頭服務(Headless Service)是 Kubernetes 中的一種特殊服務類型,它**不分配集群 IP(ClusterIP),而是直接暴露…

基本面高股息策略

策略概述 一種基于基本面高股息策略的投資策略,主要通過Python在聚寬平臺上實現。該策略的核心思想是通過篩選出具有優質基本面和高股息率的股票進行投資,以期獲得穩定的長期回報。策略包括以下幾個主要步驟: 1. 初始化與參數設置:定義策略的基本參數和回測設置。 2. 每日…

GaussDB資源凍結與解凍:精細化資源管理的實踐與策略

GaussDB資源凍結與解凍:精細化資源管理的實踐與策略 引言 在云計算環境中,數據庫資源的動態調配能力直接影響業務成本與穩定性。華為云GaussDB作為新一代分布式數據庫,通過??資源凍結(Resource Quota Freeze)??與…

設計模式24——訪問者模式

寫文章的初心主要是用來幫助自己快速的回憶這個模式該怎么用,主要是下面的UML圖可以起到大作用,在你學習過一遍以后可能會遺忘,忘記了不要緊,只要看一眼UML圖就能想起來了。同時也請大家多多指教。 訪問者模式(Visito…

cuda編程筆記(2)--傳遞參數、設備屬性

以下是最簡單的帶參數的核函數使用過程&#xff1a; #include<iostream> #include<cstdio> #include "cuda_runtime.h" #include "device_launch_parameters.h" __global__ void add(int a,int b,int *c) {*c a b; } int main() {int c;int…

C# WinForm應用程序多語言實現全面指南

目錄 引言 一、多語言實現基礎概念 1.1 多語言實現的核心原理 1.2 .NET本地化支持機制 二、基于XML的多語言實現方案 2.1 方案概述 2.2 XML文件結構示例 2.3 實現步驟 2.4 優缺點分析 三、基于.resx資源文件的多語言實現 3.1 方案概述 3.2 實現步驟 3.3 資源文件結…

Python爬蟲實戰:研究Playwright框架相關技術

1 引言 1.1 研究背景與意義 網絡爬蟲作為一種自動獲取互聯網信息的技術,在數據采集、信息監測、競爭情報等領域具有廣泛應用。隨著 Web 技術的發展,越來越多的網站采用 JavaScript 動態渲染技術,傳統爬蟲工具難以有效獲取完整的頁面內容。Playwright 作為新一代自動化測試…

中企出海大會|打造全球化云計算一張網,云網絡助力中企出海和AI創新

全球化是阿里云的長期戰略&#xff0c;未來阿里云將持續加大云和 AI 基礎設施建設投入。首先是加速打造全球化的云計算網絡&#xff0c;一張具備 AI技術服務能力和全球競爭力的云計算網絡是阿里云的長期目標。 —— 阿里巴巴集團 CEO、阿里云智能集團董事長兼 CEO 吳泳銘 5 月 …

唯創WT2606B TFT顯示靈動方案,重構電子鎖人機互動界面,賦能智能門鎖全場景交互!

在智能家居的浪潮中&#xff0c;門鎖搭載顯示屏已成為行業創新的焦點。據行業數據顯示&#xff0c;2023年全球智能門鎖出貨量中&#xff0c;搭載顯示屏的型號占比已突破40%&#xff0c;且年復合增長率達25%。而2024年國內智能門鎖銷量突破2200萬套&#xff0c;預計2025年市場規…

輕量化開源方案——淺析PdfPatcher實際應用

PDF處理在實際工作中十分重要&#xff0c;今天淺析PdfPatcher在PDF處理中的實際應用。 核心功能實測 批量處理能力 支持修改文檔屬性/頁碼編號/頁面鏈接 一鍵清除復制/打印限制&#xff08;實測WPS加密文檔可解鎖&#xff09; 自動清理隱藏冗余數據&#xff08;經測試可平均…

Docker 環境搭建與三大數據庫(MySQL/Redis/MongoDB)部署教程

Docker 環境搭建與三大數據庫(MySQL/Redis/MongoDB)部署教程 一、簡介二、安裝wsl三、wsl磁盤遷移四、wsl磁盤壓縮五、Docker下載六、win11配置docker虛擬環境命令工具七、Docker部署mysql八、Docker部署redis九、Docker部署mongo一、簡介 Docker 是一個開源的容器化平臺,它…

CPO-BP+MOPSO,冠豪豬優化BP神經網絡+多目標粒子群算法!(Matlab源碼)

目錄 效果一覽基本介紹程序設計參考資料 效果一覽 基本介紹 1.CPO-BPNSGA&#xff0c;冠豪豬優化BP神經網絡粒子群算法&#xff01;&#xff08;Matlab完整源碼和數據&#xff09;&#xff0c;冠豪豬算法優化BP神經網絡的權值和閾值&#xff0c;運行環境Matlab2020b及以上。 多…

Vision Pro發布!開發者如何快速上手空間UI設計?

Vision Pro發布&#xff01;開發者如何快速上手空間UI設計&#xff1f; 【內容摘要】 蘋果最新發布的Vision Pro&#xff0c;不僅重新定義了我們對虛擬現實&#xff08;VR&#xff09;和增強現實&#xff08;AR&#xff09;的認知&#xff0c;也為開發者們帶來了前所未有的機…

Bootstrap法進行隨機模擬

一、問題背景 # 26名神經功能受損兒童接受了兩組&#xff08;A組與B組&#xff09;空間知覺測試&#xff0c;得分如下A組和B組數據。 # A組數據 x_A <- c(48, 36, 20, 29, 42, 42, 20, 42, 22, 41, 45, 14, 6, 0, 33, 28, 34, 4, 32, 24, 47, 41, 24, 26, 30, 41)# B組數據…

Spring AI 多模型智能協作工作流實現指南

Spring AI 多模型智能協作工作流實現指南 說明 本文檔旨在指導開發者基于 Spring AI 框架&#xff0c;在 Spring Boot 2 環境下集成多種主流大語言模型&#xff08;如 OpenAI ChatGPT、Deepseek、阿里云通義千問等&#xff09;&#xff0c;并提供從環境配置、模型調用、流式輸…

C語言中清空緩存區到底寫到哪里比較好

文章目錄 問題背景%d和%c讀取緩沖區的差別清空緩存區 問題背景 在寫C語言的命令行程序時&#xff0c;我們經常會用到用戶輸入和標準輸出&#xff0c;特別的&#xff0c;當用戶輸入后&#xff0c;我們發現程序運行不是我們要的樣子&#xff0c;這個時候&#xff0c;很可能就是輸…

計算機視覺與深度學習 | 基于 YOLOv8 + BeautyGAN + CodeFormer + Face Parsing 實現簡單的人臉美顏

人臉美顏 **一、算法流程圖****二、完整代碼實現**1. 環境準備2. 完整代碼(face_beautify.py)**三、核心算法公式**1. YOLOv8檢測損失函數2. BeautyGAN損失函數3. CodeFormer圖像重建公式**四、關鍵實現細節**1. 多尺度人臉處理2. 顏色校正策略**五、模型下載清單****六、性能…

如何在WordPress中選擇最佳Elementor主題:專家指南

當你在WordPress建站過程中逐步積累了經驗&#xff0c;你可能會發覺&#xff0c;基礎和進階主題已難以完全滿足你的需求。如果你需要更復雜的功能、更靈活的布局設計&#xff0c;甚至高級定制效果&#xff0c;那么就需要選擇更加專業的主題。在這篇文章中&#xff0c;我將為你推…