torch.cat和torch.stack的區別

torch.cat?和?torch.stack?是 PyTorch 中用于組合張量的兩個常用函數,它們的核心區別在于輸入張量的維度和輸出張量的維度變化。以下是詳細對比:

1.?torch.cat?(Concatenate)

  • 作用:沿現有維度拼接多個張量,不創建新維度
  • 輸入要求:所有張量的形狀必須除拼接維度外完全相同

  • 語法

    torch.cat(tensors, dim=0)  # dim 指定拼接的維度
  • 示例

    a = torch.tensor([[1, 2], [3, 4]])  # shape (2, 2)
    b = torch.tensor([[5, 6]])           # shape (1, 2)# 沿 dim=0 拼接(行方向)
    c = torch.cat([a, b], dim=0)
    print(c)
    # tensor([[1, 2],
    #         [3, 4],
    #         [5, 6]])  # shape (3, 2)
  • 特點
    • 拼接后的張量在指定維度上的大小是輸入張量該維度大小的總和。

    • 其他維度必須完全一致。

2. torch.stack

  • 作用:沿新維度堆疊多個張量,創建新維度

  • 輸入要求:所有張量的形狀必須完全相同

  • 語法

    torch.stack(tensors, dim=0)  # dim 指定新維度的位置
  • 示例

    a = torch.tensor([1, 2])  # shape (2,)
    b = torch.tensor([3, 4])  # shape (2,)# 沿新維度 dim=0 堆疊
    c = torch.stack([a, b], dim=0)
    print(c)
    # tensor([[1, 2],
    #         [3, 4]])  # shape (2, 2)# 沿新維度 dim=1 堆疊
    d = torch.stack([a, b], dim=1)
    print(d)
    # tensor([[1, 3],
    #         [2, 4]])  # shape (2, 2)
  • 特點

    • 輸出張量比輸入張量多一個維度

    • 適用于將多個相同形狀的張量合并為批次(如?batch_size?維度)。

3. 關鍵區別總結

4. 直觀對比示例

假設有兩個張量:

x = torch.tensor([1, 2])  # shape (2,)
y = torch.tensor([3, 4])  # shape (2,)

torch.cat?結果

torch.cat([x, y], dim=0)  # tensor([1, 2, 3, 4]), shape (4,)

torch.stack?結果

torch.stack([x, y], dim=0)  # tensor([[1, 2], [3, 4]]), shape (2, 2)

5. 如何選擇?

  • 用?torch.cat?當需要擴展現有維度(如拼接多個特征圖)。

  • 用?torch.stack?當需要創建新維度(如構建批次數據或堆疊不同模型的輸出)

通過理解兩者的維度變化邏輯,可以避免常見的形狀錯誤(如?size mismatch)。?

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

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

相關文章

深入解析@Validated注解:Spring 驗證機制的核心工具

一、注解出處與核心定位 1. 注解來源 ? 所屬框架:Validated 是 Spring Framework 提供的注解(org.springframework.validation.annotation 包下)。 ? 核心定位: 作為 Spring 對 JSR-380(Bean Validation 2.0&#…

2025年認證杯數學建模競賽A題完整分析論文(含模型、可運行代碼)(共32頁)

2025年認證杯數學建模競賽A題完整分析論文 目錄 摘要 一、問題分析 二、問題重述 三、模型假設 四、 模型建立與求解 4.1問題1 4.1.1問題1解析 4.1.2問題1模型建立 4.1.3問題1樣例代碼(僅供參考) 4.1.4問題1求解結果分析&#xff08…

Google A2A協議,是為了戰略性占領標準?

一、導讀 2025 年 4 月 9 日,Google 正式發布了 Agent2Agent(A2A)協議。 A2A 協議致力于打破智能體之間的隔閡,讓它們能夠跨越框架和供應商的限制,以一種標準化、開放的方式進行溝通與協作 截止到現在,代…

Ansible:roles角色

文章目錄 Roles角色Ansible Roles目錄編排Roles各目錄作用創建 roleplaybook調用角色調用角色方法1:調用角色方法2:調用角色方法3: roles 中 tags 使用實戰案例 Roles角色 角色是ansible自1.2版本引入的新特性,用于層次性、結構化…

MCU的USB接口作為 USB CDC串口輸出

引用: https://microchip-mplab-harmony.github.io/usb_apps_device/apps/usb_uart_bridge_dual/readme.html STM32 USB使用記錄:使用CDC類虛擬串口(VCP)進行通訊_stm32 usb使用記錄:使用cdc類虛擬串口(vcp)進行通訊-CSDN博客 前…

深度解析強化學習:原理、算法與實戰

深度解析強化學習:原理、算法與實戰 0. 前言1. 強化學習基礎1.1 基本概念1.2 馬爾科夫決策過程1.3 目標函數1.4 智能體學習過程2. 計算狀態值3. 計算狀態-動作值4. Q 學習4.1 Q 值4.2 使用 Q 學習進行 frozen lake 游戲4.3. frozen lake 問題4.4 實現 Q 學習小結系列鏈接0. 前…

UE5藍圖之間的通信------接口

一、創建藍圖接口 二、雙擊創建的藍圖接口,添加函數,并重命名新函數。 三、在一個藍圖(如玩家角色藍圖)中實現接口,如下圖: 步驟一:點擊類設置 步驟二:在細節面板已經實現的接口中…

2025 年“認證杯”數學中國數學建模網絡挑戰賽 A題 小行星軌跡預測

近地小行星( Near Earth Asteroids, NEAs )是軌道相對接近地球的小行 星,它的正式定義為橢圓軌道的近日距不大于 1.3 天文單位( AU )的小行星。 其中軌道與地球軌道最近距離小于 0.05A 且直徑大于 140 米的小行星被…

Axure中繼器(Repeater): 列表多選和 列表查詢

文章目錄 引言I 列表多選添加選中交互事件添加未選中交互事件II 列表查詢知識點操作說明引言 基于鼠標點擊交互事件實現列表多選列表查詢 I 列表多選 添加選中交互事件 給列標題第一列多選框元件命名為ckeck,并同時添加選中交互事件; 同步添加設置選擇/選中動作,目標元件選…

windows11下pytorch(cpu)安裝

先裝anaconda 見最下方 Pytorch 官網:PyTorch 找到下圖(不要求版本一樣)(我的電腦是集顯(有navdia的裝gpu),裝cpu) 查看已有環境列表 創建環境 conda create –n 虛擬環境名字(…

最新版IDEA超詳細圖文安裝教程(適用Mac系統)附安裝包及補丁2025最新教程

目錄 前言 一、IDEA最新版下載 二、IDEA安裝 三、IDEA補丁 前言 IDEA(IntelliJ IDEA)是專為Java語言設計的集成開發環境(IDE),由JetBrains公司開發,被公認為業界最優秀的Java開發工具之一。DEA全稱Int…

react從零開始的基礎課1

全文約5萬字。 1.hello,.. // App.jsx import { useState } from react import reactLogo from ./assets/react.svg import viteLogo from /vite.svg import ./App.cssfunction App() {const [count, setCount] useState(0)return (<><Greeting name"world&qu…

【linux知識】web服務環境搭建(一):用戶以及開發環境初始化

toc 創建用戶組以及用戶 以下是 創建用戶組 wendao 和用戶 wendao 并指定 GID、UID 及家目錄 的完整操作指南&#xff1a; 一、創建用戶組&#xff08;指定 GID&#xff09; sudo groupadd -g 1500 wendao # 創建組并指定 GID 為 1500? 注意&#xff1a;GID 需唯一&#…

音視頻 五 看書的筆記 MediaCodec

MediaCodec 用于訪問底層媒體編解碼器框架&#xff0c;編解碼組件。通常與MediaExtractor(解封裝,例如Mp4文件分解成 video和audio)、MediaSync、MediaMuxer(封裝 例如音視頻合成Mp4文件)、MediaCrypto、Image(cameraX 回調的ImageReader對象可以獲取到Image幀圖像,可轉換成YU…

李宏毅NLP-3-語音識別part2-LAS

語音識別part2——LAS Listen Listen主要功能是提取內容信息&#xff0c;去除說話人差異和噪聲 。編碼器&#xff08;Encoder&#xff09;結構&#xff0c;輸入是聲學特征&#xff0c;經過 Encoder 處理后&#xff0c;輸出為高級表示&#xff0c;這些高級表示可用于后續語音識別…

開源CMS的模塊化設計和API接口如何具體影響其擴展性?

優秀的CMS系統都有自己主打的特點&#xff0c;開源CMS憑借其靈活性和低成本優勢占據了市場主流地位&#xff0c;而模塊化設計與API接口正是其擴展性的兩大基石。本文將深入探討這兩大技術特性是如何影響cms的擴展性的。 一、模塊化設計&#xff1a;功能解耦與生態繁榮的引擎 …

一文讀懂WPF系列之常用控件以及樣式

WPF控件 控件分類概覽常用控件常用控件代碼示例和效果 樣式與模板應用樣式定義??方式行內樣式??頁面/窗口級資源樣式&#xff08;Local Resource&#xff09;應用程序全局資源獨立資源字典&#xff08;ResourceDictionary&#xff09;控件模板&#xff08;ControlTemplate&…

AndroidTV D貝桌面-v3.2.5-[支持文件傳輸]

AndroidTV D貝桌面 鏈接&#xff1a;https://pan.xunlei.com/s/VONXSBtgn8S_BsZxzjH_mHlAA1?pwdzet2# AndroidTV D貝桌面-v3.2.5[支持文件傳輸] 第一次使用的話&#xff0c;壁紙默認去掉的&#xff0c;不需要按遙控器上鍵&#xff0c;自己更換壁紙即可

XDocument和XmlDocument的區別及用法

因為這幾天用到了不熟悉的xml統計數據&#xff0c;啃了網上的資料解決了問題&#xff0c;故總結下xml知識。 1.什么是XML?2.XDocument和XmlDocument的區別3.XDocument示例1示例2&#xff1a;示例3&#xff1a; 4.XmlDocument5.LINQ to XML6.XML序列化(Serialize)與反序列化(De…

從競速到巡檢:不同無人機如何匹配最佳PCB方案?

隨著無人機技術的快速發展&#xff0c;高性能PCB&#xff08;印刷電路板&#xff09;成為無人機制造商的核心需求之一。無論是消費級無人機還是工業級應用&#xff0c;PCB的質量直接影響飛行控制、信號傳輸和整機穩定性。那么&#xff0c;無人機制造商在選型高端PCB時&#xff…