深度学习(14)--x.view()详解

在torch中,常用view()函数来改变tensor的形状

查询官方文档:

torch.Tensor.view --- PyTorch 2.2 documentationhttps://pytorch.org/docs/stable/generated/torch.Tensor.view.html#torch.Tensor.view示例

1.创建一个4x4的二维数组进行测试

python 复制代码
x = torch.randn(4, 4)
print(x)
print(x.size())

(1).将二维数组变换为一维数组

python 复制代码
y = x.view(16)
print(y)
print(y.size())

(2).将二维数组变换为其他形式的二维数组

python 复制代码
z = x.view(2, 8)
print(z)
print(z.size())

(3).可以将其中一个参数设置为-1,view()会根据已设置的维度自动推断出另外一个维度的大小

复制代码
# the size -1 is inferred from other dimensions
python 复制代码
yy = x.view(-1, 8)
print(yy)
print(yy.size())

zz = x.view(8, -1)
print(zz)
print(zz.size())

可以看到分别得到了2x8的yy和8x2的zz,符合实际的情况。

2.创建一个1x2x3x4的四维矩阵进行测试

python 复制代码
x = torch.rand(1, 2, 3, 4)
print(x)
print(x.size())

(1).将四维数组变换为一维数组

python 复制代码
y = x.view(-1)
print(y)
print(y.size())

(2).将四维数组变换为二维数组

python 复制代码
z = x.view(2,-1)
print(z)
print(z.size())

(3).将四维数组变换为三维数组

python 复制代码
a = x.view(2, -1, 4)
print(a)
print(a.size())

(4).将四维数组转换为其他形式的四维数组

python 复制代码
b = x.view(1, 3, 2, 4)
print(b)
print(b.size())

值得注意的是view()函数并不改变tensor数据在内存中的层次

利用tranpose函数进行验证,transpose函数可以交换数据指定的维度:

python 复制代码
c = x.transpose(1, 2)
print(c)
print(c.size())

transpose(1,2)将第二个维度和第三个维度互换(四维对应的索引是0,1,2,3)

利用equal()函数判断b和c是否相同:

python 复制代码
print("b和c是否相等:")
print(torch.equal(b, c))

由如上结果可知,view()函数并不改变数据在内存中的层次。

相关推荐
咚咚王者3 分钟前
人工智能之数学基础 概率论与统计:第二章 核心定理
人工智能·概率论
小徐Chao努力5 分钟前
Spring AI Alibaba A2A 使用指南
java·人工智能·spring boot·spring·spring cloud·agent·a2a
啊阿狸不会拉杆5 分钟前
《数字图像处理》第7章:小波变换和其他图像变换
图像处理·人工智能·python·算法·机器学习·计算机视觉·数字图像处理
yiersansiwu123d6 分钟前
生成式AI重构内容生态,人机协同定义创作新范式
大数据·人工智能·重构
老蒋新思维8 分钟前
创客匠人:从个人IP到知识变现,如何构建可持续的内容生态?
大数据·网络·人工智能·网络协议·tcp/ip·创客匠人·知识变现
HyperAI超神经13 分钟前
GPT-5全面领先,OpenAI发布FrontierScience,「推理+科研」双轨检验大模型能力
人工智能·gpt·ai·openai·benchmark·基准测试·gpt5.2
老蒋新思维18 分钟前
创客匠人洞察:从“个人品牌”到“系统物种”——知识IP的终极进化之路
网络·人工智能·网络协议·tcp/ip·重构·创客匠人·知识变现
阿杰学AI20 分钟前
AI核心知识57——大语言模型之MoE(简洁且通俗易懂版)
人工智能·ai·语言模型·aigc·ai-native·moe·混合专家模型
珠海西格电力24 分钟前
零碳园区边缘计算节点规划:数字底座的硬件部署与能耗控制方案
运维·人工智能·物联网·能源·边缘计算
臼犀27 分钟前
孩子,那不是说明书,那是祈祷文
人工智能·程序员·markdown