人工智能学习Pytorch教程Tensor基本操作示例详解
目录
- 一、tensor的创建
- 1.使用tensor
- 2.使用Tensor
- 3.随机初始化
- 4.其他数据生成
- ①torch.full
- ②torch.arange
- ③linspace和logspace
- ④ones, zeros, eye
- ⑤torch.randperm
- 二、tensor的索引与切片
- 1.索引与切片使用方法
- ①index_select
- ②...
- ③mask
- 三、tensor维度的变换
- 1.维度变换
- ①torch.view
- ②squeeze/unsqueeze
- ③expand,repeat
- ④t,transpose,permute
一、tensor的创建
1.使用tensor
小写字母的tensor接收具体的数据,可以直接按照numpy的方式输入数组。
文章图片
2.使用Tensor
大写字母的可以接收形状,此时会生成随机数,但没有任何规则。可以生成不同的类型。
文章图片
自动生成的数据有默认类型,FloatTensor,可以使用torch.set_default_tensor_type去修改
3.随机初始化
rand
:0-1之间均匀采样randn
:均值0,方差1的正态分布随机采样以上两种可以直接输入形状,即可产生对应形状的随机数。
randint
:参数是---起始值、终止值、形状同时每一个都会有一个_like方法,输入一个tensor,会生成对应形状的新tensor
文章图片
4.其他数据生成
①torch.full 参数是---形状,数据。如果形状的位置给一个空的list,生成的就是标量。
文章图片
②torch.arange 参数是---起始,终止,步长。不包含终止值。
文章图片
③linspace和logspace 参数是---起始,终止,数量。包含终止值
文章图片
④ones, zeros, eye 输入形状即可。ones和zeros也有_like方法
文章图片
⑤torch.randperm 随机打散。输入一个数字,会自动生成这个数字长度的,从0开始的随机排列数字,可以作为索引。当需要对不同的数据,使用相同的索引,并且打乱顺序时,非常好用。
文章图片
二、tensor的索引与切片
1.索引与切片使用方法
和python中的索引切片使用方法一致
文章图片
文章图片
①index_select 输入的参数---维度的位置、要选的内容对应的维度的索引。不太好理解,可以看下面的例子。
文章图片
②... 三个点相当于集成了的连续的冒号。
文章图片
③mask 需要先根据数据生成一个mask,比如挑选出大于等于0.3的数,此时会得到一个和数据相同形状的,满足条件位置是1,不满足条件的位置是0的一个mask,通过masked_select可以选出数据。
文章图片
三、tensor维度的变换
1.维度变换
①torch.view 【人工智能学习Pytorch教程Tensor基本操作示例详解】和numpy中的reshape方法一样。转换的时候需要考虑到实际的物理意义。
文章图片
②squeeze/unsqueeze
squeeze
输入的参数---需要减少的维度所在位置unsqueeze
输入的参数---需要增加的维度所在的位置文章图片
③expand,repeat
expand
输入的参数---希望扩展后所形成的维度repeat
输入的参数---各自维度需要重复的次数通常使用expand,因为不会主动复制数据。
文章图片
④t,transpose,permute
t
:和numpy中的转置一样,只针对二维矩阵操作transpose
:输入需要交换的维度的位置即可。但想要还原的时候,需记得转换后的各个位置的物理意义,根据实际意义进行再次转换。见下面的例子。permute
:输入希望转换成的维度的位置索引即可。相当于多次使用transpose文章图片
以上就是人工智能学习Pytorch教程Tensor基本操作示例详解的详细内容,更多关于Pytorch的tensor基本操作的资料请关注脚本之家其它相关文章!
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)
- 焦点学习田源分享第267天《来访》