Pytorch Tensor维度变换方法

1.torch.reshape()、torch.view()可以调整Tensor的shape

2.torch.unsqueeze(index)可以为Tensor增加一个维度

3.squeeze()可以删减维度

4.expand()扩展维度

5.repeat()维度重复,不常用

6 .transpose(dim1, dim2)交换dim1与dim2,进行维度变换。

注意这种交换使得存储不再连续,再执行一些reshape的操作会报错,所以要调用一下contiguous()使其变成连续的维度。

参考:https://blog.csdn.net/weicao1990/article/details/93618136

7.Broadcasting(广播)也就是自动实现了若干unsqueeze和expand操作,以使两个Tensor的shape一致,从而完成某些操作(往往是加法)。

比如得到的feature maps的维度是[4,32,14,14],对这些特征图加上偏置,bias[32],先对bias进行unsqueeze操作增加维度:[1,32,1,1],再用expand操作进行扩充[4,32,14,14]。然后两者就可以相加了。

相关推荐
leluckys几秒前
AI- 一种快速实现MCP服务的方法
开发语言·python
lingzhilab2 分钟前
零知ESP32-S3 部署AI小智 2.1,继电器和音量控制以及页面展示音量
人工智能
写代码的【黑咖啡】9 分钟前
探索 Python 中的 Vaex:高效处理大规模数据的新选择
开发语言·python
Lun3866buzha12 分钟前
自动扶梯与楼梯识别_yolo11-C3k2-SCcConv改进实现
python
两万五千个小时12 分钟前
AI Agent 框架演进
人工智能
li星野15 分钟前
OpenCV4X学习—核心模块Core
人工智能·opencv·学习
JavaLearnerZGQ16 分钟前
1、Java中的线程
java·开发语言·python
刘立军23 分钟前
如何选择FAISS的索引类型
人工智能·算法·架构
@zulnger24 分钟前
python 学习笔记(多线程和多进程)
笔记·python·学习
Master_清欢34 分钟前
jupyter新增行数
ide·python·jupyter