文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Pytorch中Tensor基本操作的示例分析

2023-06-25 14:49

关注

这篇文章将为大家详细讲解有关Pytorch中Tensor基本操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、tensor的创建

1.使用tensor

小写字母的tensor接收具体的数据,可以直接按照numpy的方式输入数组。

Pytorch中Tensor基本操作的示例分析

2.使用Tensor

大写字母的可以接收形状,此时会生成随机数,但没有任何规则。可以生成不同的类型。

Pytorch中Tensor基本操作的示例分析

自动生成的数据有默认类型,FloatTensor,可以使用torch.set_default_tensor_type去修改

3.随机初始化

rand:0-1之间均匀采样

randn:均值0,方差1的正态分布随机采样

以上两种可以直接输入形状,即可产生对应形状的随机数。

randint:参数是---起始值、终止值、形状

同时每一个都会有一个_like方法,输入一个tensor,会生成对应形状的新tensor

Pytorch中Tensor基本操作的示例分析

4.其他数据生成

①torch.full

参数是---形状,数据。如果形状的位置给一个空的list,生成的就是标量。

Pytorch中Tensor基本操作的示例分析

②torch.arange

参数是---起始,终止,步长。不包含终止值。

Pytorch中Tensor基本操作的示例分析

③linspace和logspace

参数是---起始,终止,数量。包含终止值

Pytorch中Tensor基本操作的示例分析

④ones, zeros, eye

输入形状即可。ones和zeros也有_like方法

Pytorch中Tensor基本操作的示例分析

⑤torch.randperm

随机打散。输入一个数字,会自动生成这个数字长度的,从0开始的随机排列数字,可以作为索引。当需要对不同的数据,使用相同的索引,并且打乱顺序时,非常好用。

Pytorch中Tensor基本操作的示例分析

二、tensor的索引与切片

1.索引与切片使用方法

和python中的索引切片使用方法一致

Pytorch中Tensor基本操作的示例分析

Pytorch中Tensor基本操作的示例分析

①index_select

输入的参数---维度的位置、要选的内容对应的维度的索引。不太好理解,可以看下面的例子。

Pytorch中Tensor基本操作的示例分析

②...

三个点相当于集成了的连续的冒号。

Pytorch中Tensor基本操作的示例分析

③mask

需要先根据数据生成一个mask,比如挑选出大于等于0.3的数,此时会得到一个和数据相同形状的,满足条件位置是1,不满足条件的位置是0的一个mask,通过masked_select可以选出数据。

Pytorch中Tensor基本操作的示例分析

三、tensor维度的变换

1.维度变换

①torch.view

和numpy中的reshape方法一样。转换的时候需要考虑到实际的物理意义。

Pytorch中Tensor基本操作的示例分析

②squeeze/unsqueeze

squeeze输入的参数---需要减少的维度所在位置

unsqueeze输入的参数---需要增加的维度所在的位置

Pytorch中Tensor基本操作的示例分析

③expand,repeat

expand输入的参数---希望扩展后所形成的维度

repeat输入的参数---各自维度需要重复的次数

通常使用expand,因为不会主动复制数据。

Pytorch中Tensor基本操作的示例分析

④t,transpose,permute

t:和numpy中的转置一样,只针对二维矩阵操作

transpose:输入需要交换的维度的位置即可。但想要还原的时候,需记得转换后的各个位置的物理意义,根据实际意义进行再次转换。见下面的例子。

permute:输入希望转换成的维度的位置索引即可。相当于多次使用transpose

Pytorch中Tensor基本操作的示例分析

关于“Pytorch中Tensor基本操作的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯