網(wǎng)站首頁 編程語言 正文
一. torch.cat()函數(shù)解析
1. 函數(shù)說明
1.1 官網(wǎng):torch.cat(),函數(shù)定義及參數(shù)說明如下圖所示:
1.2 函數(shù)功能
函數(shù)將兩個張量(tensor)按指定維度拼接在一起,注意:除拼接維數(shù)dim數(shù)值可不同外其余維數(shù)數(shù)值需相同,方能對齊,如下面例子所示。torch.cat()函數(shù)不會新增維度,而torch.stack()函數(shù)會新增一個維度,相同的是兩個都是對張量進(jìn)行拼接
2. 代碼舉例
2.1 輸入兩個二維張量(dim=0):dim=0對行進(jìn)行拼接
a = torch.randn(2,3)
b = torch.randn(3,3)
c = torch.cat((a,b),dim=0)
a,b,c
輸出結(jié)果如下:
(tensor([[-0.90, -0.37, ?1.96],
? ? ? ? ?[-2.65, -0.60, ?0.05]]),
?tensor([[ 1.30, ?0.24, ?0.27],
? ? ? ? ?[-1.99, -1.09, ?1.67],
? ? ? ? ?[-1.62, ?1.54, -0.14]]),
?tensor([[-0.90, -0.37, ?1.96],
? ? ? ? ?[-2.65, -0.60, ?0.05],
? ? ? ? ?[ 1.30, ?0.24, ?0.27],
? ? ? ? ?[-1.99, -1.09, ?1.67],
? ? ? ? ?[-1.62, ?1.54, -0.14]]))
2.2 輸入兩個二維張量(dim=1): dim=1對列進(jìn)行拼接
a = torch.randn(2,3)
b = torch.randn(2,4)
c = torch.cat((a,b),dim=1)
a,b,c
輸出結(jié)果如下:
(tensor([[-0.55, -0.84, -1.60],
? ? ? ? ?[ 0.39, -0.96, ?1.02]]),
?tensor([[-0.83, -0.09, ?0.05, ?0.17],
? ? ? ? ?[ 0.28, -0.74, -0.27, -0.85]]),
?tensor([[-0.55, -0.84, -1.60, -0.83, -0.09, ?0.05, ?0.17],
? ? ? ? ?[ 0.39, -0.96, ?1.02, ?0.28, -0.74, -0.27, -0.85]]))
2.3 輸入兩個三維張量:dim=0 對通道進(jìn)行拼接
a = torch.randn(2,3,4)
b = torch.randn(1,3,4)
c = torch.cat((a,b),dim=0)
a,b,c
輸出結(jié)果如下:
(tensor([[[ 0.51, -0.72, -0.02, ?0.76],
? ? ? ? ? [ 0.72, ?1.01, ?0.39, -0.13],
? ? ? ? ? [ 0.37, -0.63, -2.69, ?0.74]],
?
? ? ? ? ?[[ 0.72, -0.31, -0.27, ?0.10],
? ? ? ? ? [ 1.66, -0.06, ?1.91, -0.66],
? ? ? ? ? [ 0.34, -0.23, -0.18, -1.22]]]),
?tensor([[[ 0.94, ?0.77, -0.41, -1.20],
? ? ? ? ? [-0.23, -1.03, -0.25, ?1.67],
? ? ? ? ? [-1.00, -0.68, -0.35, -0.50]]]),
?tensor([[[ 0.51, -0.72, -0.02, ?0.76],
? ? ? ? ? [ 0.72, ?1.01, ?0.39, -0.13],
? ? ? ? ? [ 0.37, -0.63, -2.69, ?0.74]],
?
? ? ? ? ?[[ 0.72, -0.31, -0.27, ?0.10],
? ? ? ? ? [ 1.66, -0.06, ?1.91, -0.66],
? ? ? ? ? [ 0.34, -0.23, -0.18, -1.22]],
?
? ? ? ? ?[[ 0.94, ?0.77, -0.41, -1.20],
? ? ? ? ? [-0.23, -1.03, -0.25, ?1.67],
? ? ? ? ? [-1.00, -0.68, -0.35, -0.50]]]))
2.4 輸入兩個三維張量:dim=1對行進(jìn)行拼接
a = torch.randn(2,3,4)
b = torch.randn(2,4,4)
c = torch.cat((a,b),dim=1)
a,b,c
輸出結(jié)果如下:
(tensor([[[-0.86, ?0.00, -1.26, ?1.20],
? ? ? ? ? [-0.46, -1.08, -0.82, ?2.03],
? ? ? ? ? [-0.89, ?0.43, ?1.92, ?0.49]],
?
? ? ? ? ?[[ 0.24, -0.02, ?0.32, ?0.97],
? ? ? ? ? [ 0.33, -1.34, ?0.76, -1.55],
? ? ? ? ? [ 0.38, ?1.45, ?0.27, -0.64]]]),
?tensor([[[ 0.82, ?0.85, -0.30, -0.58],
? ? ? ? ? [-0.09, ?0.40, ?0.02, ?0.75],
? ? ? ? ? [-0.70, ?0.67, -0.88, -0.50],
? ? ? ? ? [-0.62, -1.65, -1.10, -1.39]],
?
? ? ? ? ?[[-0.85, -1.61, -0.35, -0.56],
? ? ? ? ? [ 0.00, ?1.40, ?0.41, ?0.39],
? ? ? ? ? [-0.01, ?0.04, ?0.80, ?0.41],
? ? ? ? ? [-1.21, -0.64, ?1.14, ?1.64]]]),
?tensor([[[-0.86, ?0.00, -1.26, ?1.20],
? ? ? ? ? [-0.46, -1.08, -0.82, ?2.03],
? ? ? ? ? [-0.89, ?0.43, ?1.92, ?0.49],
? ? ? ? ? [ 0.82, ?0.85, -0.30, -0.58],
? ? ? ? ? [-0.09, ?0.40, ?0.02, ?0.75],
? ? ? ? ? [-0.70, ?0.67, -0.88, -0.50],
? ? ? ? ? [-0.62, -1.65, -1.10, -1.39]],
?
? ? ? ? ?[[ 0.24, -0.02, ?0.32, ?0.97],
? ? ? ? ? [ 0.33, -1.34, ?0.76, -1.55],
? ? ? ? ? [ 0.38, ?1.45, ?0.27, -0.64],
? ? ? ? ? [-0.85, -1.61, -0.35, -0.56],
? ? ? ? ? [ 0.00, ?1.40, ?0.41, ?0.39],
? ? ? ? ? [-0.01, ?0.04, ?0.80, ?0.41],
? ? ? ? ? [-1.21, -0.64, ?1.14, ?1.64]]]))
2.5 輸入兩個三維張量:dim=2對列進(jìn)行拼接
a = torch.randn(2,3,4)
b = torch.randn(2,3,5)
c = torch.cat((a,b),dim=2)
a,b,c
輸出結(jié)果如下:
(tensor([[[ 0.13, -0.02, ?0.13, -0.25],
? ? ? ? ? [ 1.42, -0.22, -0.87, ?0.27],
? ? ? ? ? [-0.07, ?1.04, -0.06, ?0.91]],
?
? ? ? ? ?[[ 0.88, -1.46, ?0.04, ?0.35],
? ? ? ? ? [ 1.36, ?0.64, ?0.75, ?0.39],
? ? ? ? ? [ 0.36, ?1.13, ?0.83, ?0.56]]]),
?tensor([[[-0.47, -2.30, -0.49, -1.02, ?1.74],
? ? ? ? ? [ 0.71, ?0.89, ?0.80, -0.05, -1.35],
? ? ? ? ? [-0.40, ?0.26, -0.78, -1.50, -0.92]],
?
? ? ? ? ?[[-0.77, -0.01, ?1.23, ?0.70, -0.66],
? ? ? ? ? [ 0.28, -0.18, -0.91, ?2.23, ?1.14],
? ? ? ? ? [-1.93, -0.17, ?0.15, ?0.40, ?0.32]]]),
?tensor([[[ 0.13, -0.02, ?0.13, -0.25, -0.47, -2.30, -0.49, -1.02, ?1.74],
? ? ? ? ? [ 1.42, -0.22, -0.87, ?0.27, ?0.71, ?0.89, ?0.80, -0.05, -1.35],
? ? ? ? ? [-0.07, ?1.04, -0.06, ?0.91, -0.40, ?0.26, -0.78, -1.50, -0.92]],
?
? ? ? ? ?[[ 0.88, -1.46, ?0.04, ?0.35, -0.77, -0.01, ?1.23, ?0.70, -0.66],
? ? ? ? ? [ 1.36, ?0.64, ?0.75, ?0.39, ?0.28, -0.18, -0.91, ?2.23, ?1.14],
? ? ? ? ? [ 0.36, ?1.13, ?0.83, ?0.56, -1.93, -0.17, ?0.15, ?0.40, ?0.32]]]))
總結(jié)
原文鏈接:https://blog.csdn.net/flyingluohaipeng/article/details/125038212
相關(guān)推薦
- 2022-12-23 kotlin延遲初始化和密封類詳細(xì)講解_Android
- 2022-08-14 C#使用Data?Annotations進(jìn)行手動數(shù)據(jù)驗證_C#教程
- 2022-04-14 CMake編譯中的庫文件和頭文件鏈接你了解嗎_C 語言
- 2023-06-18 Go語言實現(xiàn)關(guān)閉http請求的方式總結(jié)_Golang
- 2022-11-01 詳解C++中函數(shù)模板的定義與使用_C 語言
- 2022-04-18 react中在元素中插入多個類名, 多個狀態(tài)之間的類名切換等
- 2022-07-14 Android自定義相機(jī)、預(yù)覽區(qū)域裁剪_Android
- 2023-10-14 C/C++ 批量梯度下降法實現(xiàn)一元線性回歸
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支