網站首頁 編程語言 正文
Pytorch expand()的使用
有兩點需要注意,無論是 expand() 還是 expand_as():
1.只能在第0維擴展一個維數,比如原來是是(1,3,4)==》(2,1,3,4),而在其他維度擴展不可以(1,3,4)==》(1,2,3,4)【錯誤】
2.如果不增加維數,只是增加維度,要增加的原維度必須是1才可以在該維度增加維度,其他值均不可以
import torch
#1
x = torch.randn(2, 1, 1)#為1可以擴展為3和4
x = x.expand(2, 3, 4)
print('x :', x.size())
>>> x : torch.Size([2, 3, 4])
#2
#擴展一個新的維度必須在最前面,否則會報錯
x = x.expand(2, 3, 4, 6)
>>> RuntimeError: The expanded size of the tensor (3) must match the existing size (2) at non-singleton dimension 1.
x = x.expand(6, 2, 3, 4)
>>> x : torch.Size([6, 2, 3, 4])
#3
#某一個維度為-1表示不改變該維度的大小
x = x.expand(6, -1, -1, -1)
>>> x : torch.Size([6, 2, 1, 1])
import torch
#1
x = torch.randn(2, 1, 1)#原維度為1可以擴展為其他維度
y = torch.randn(2, 3, 3)
x = x.expand_as(y)
print('x :', x.size())
>>> x : torch.Size([2, 3, 3])
#2
x = torch.randn(2, 2, 2)#原維度為其他不是1的值不可以擴展為其他維度
y = torch.randn(2, 3, 4)
x = x.expand_as(y)
print('x :', x.size())
>>> RuntimeError: The expanded size of the tensor (4) must match the existing size (2) at non-singleton dimension 2. Target sizes: [2, 3, 4].
Pytorch expand()函數
返回tensor的一個新視圖
單個維度擴大為更大的尺寸。
tensor也可以擴大為更高維,新增加的維度將附在前面。
擴大tensor不需要分配新內存,只是僅僅新建一個tensor的視圖,其中通過將stride設為0,一維將會擴展位更高維。
任何一個一維的在不分配新內存情況下可擴展為任意的數值。
note:使用expand()函數的時候
x自身不會改變,因此需要將結果重新賦值。
原文鏈接:https://mapengsen.blog.csdn.net/article/details/120602026
相關推薦
- 2022-11-03 通過VS下載的NuGet包修改其下載存放路徑的操作方法_python
- 2022-07-25 利用正則表達式匹配浮點型數據_正則表達式
- 2023-01-01 C++?Boost.Signals2信號/槽概念_C 語言
- 2022-05-23 Docker容器鏡像相關命令基本介紹與使用_docker
- 2022-07-03 如何讓Python在HTML中運行_python
- 2023-01-18 Android?Intent通信詳細講解_Android
- 2022-07-18 Kotlin 正確退出 foreach、foreachIndexed 循環函數
- 2023-04-08 Python中關于?*args與**args的用法及說明_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支