Pytorch :维度转化

在PyTorch里,维度转换是常见的操作,以下是一些常用的维度转换方法:

1. view 方法

view 方法能够对张量的形状进行重塑,不过要保证重塑前后元素总数相同。

python 复制代码
import torch


# 创建一个张量
x = torch.arange(12)
print("原始张量:", x)


# 使用view方法进行维度转换
y = x.view(3, 4)
print("转换后的张量:", y)

2. reshape 方法

reshape 方法和 view 方法功能类似,也用于重塑张量形状,但 reshape 更灵活,即使原张量不连续也能使用。

python 复制代码
import torch


# 创建一个张量
x = torch.arange(12)
print("原始张量:", x)


# 使用reshape方法进行维度转换
y = x.reshape(3, 4)
print("转换后的张量:", y)

3. transpose 方法

transpose 方法可以交换张量的两个指定维度。

python 复制代码
import torch


# 创建一个二维张量
x = torch.arange(12).view(3, 4)
print("原始张量:", x)


# 使用transpose方法交换维度
y = x.transpose(0, 1)
print("转换后的张量:", y)

4. permute 方法

permute 方法能对张量的所有维度进行重排。

python 复制代码
import torch


# 创建一个三维张量
x = torch.arange(24).view(2, 3, 4)
print("原始张量形状:", x.shape)


# 使用permute方法重排维度
y = x.permute(1, 2, 0)
print("转换后的张量形状:", y.shape)

5. unsqueezesqueeze 方法

  • unsqueeze 方法用于在指定位置插入一个维度。
  • squeeze 方法用于移除所有维度为1的维度。
python 复制代码
import torch


# 创建一个一维张量
x = torch.arange(3)
print("原始张量形状:", x.shape)


# 使用unsqueeze方法插入维度
y = x.unsqueeze(0)
print("插入维度后的张量形状:", y.shape)


# 使用squeeze方法移除维度
z = y.squeeze(0)
print("移除维度后的张量形状:", z.shape)

这些方法能帮你在PyTorch里灵活地进行维度转换。实际使用时,要依据具体需求选择合适的方法。

相关推荐
低调小一20 小时前
从聊天记录到单一 Prompt:搞懂 Messages、Chat Templates、Special Tokens
人工智能·prompt
伊克罗德信息科技20 小时前
伊克罗德信息蝉联2025亚马逊云科技中国区年度创新合作伙伴奖,以AI深耕云端未来
人工智能·科技
媒体人88820 小时前
GEO优化专家孟庆涛谈 GEO 优化:百度抖音谷歌协同抢答案主权
大数据·人工智能·搜索引擎·生成式引擎优化·geo优化
智元视界20 小时前
智慧金融智能风控:AI算法如何服务小微企业
人工智能·金融·架构·云计算·数字化转型·产业升级
东南门吹雪20 小时前
向量、张量、大语言模型、Embedding
人工智能·语言模型·embedding
qq_3561969520 小时前
day27pipeline管道@浙大疏锦行
python
桃子叔叔20 小时前
Prompt Engineering 完全指南:从基础到高阶技术深度解析
大数据·人工智能·prompt
腾飞开源20 小时前
14_Spring AI 干货笔记之 Azure OpenAI 对话模型
人工智能·向量存储·对话模型·工具调用·spring ai·azure openai·ai模型集成
噔噔噔噔@20 小时前
第一章、基础理论——第一节、软件测试概述
python·单元测试·压力测试
晨同学032720 小时前
【中文】CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval
人工智能·多模态