人工智能学习Pytorch教程Tensor基本操作示例详解
作者:Swayzzu 发布时间:2021-06-14 17:39:22
一、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
和numpy中的reshape方法一样。转换的时候需要考虑到实际的物理意义。
②squeeze/unsqueeze
squeeze
输入的参数---需要减少的维度所在位置
unsqueeze
输入的参数---需要增加的维度所在的位置
③expand,repeat
expand
输入的参数---希望扩展后所形成的维度
repeat
输入的参数---各自维度需要重复的次数
通常使用expand,因为不会主动复制数据。
④t,transpose,permute
t
:和numpy中的转置一样,只针对二维矩阵操作
transpose
:输入需要交换的维度的位置即可。但想要还原的时候,需记得转换后的各个位置的物理意义,根据实际意义进行再次转换。见下面的例子。
permute
:输入希望转换成的维度的位置索引即可。相当于多次使用transpose
来源:https://blog.csdn.net/Swayzzu/article/details/121075984
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 看下这个 URLconf:from django.conf.urls.defaults import *from mysite.views
- 首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Un
- 概述做日志分析工作的经常需要跟成千上万的日志条目打交道,为了在庞大的数据量中找到特定模式的数据,常常需要编写很多复杂的正则表达式。例如枚举出
- 现在大家常用的桌面操作系统有:Windows、Mac OS、ubuntu,其中Mac OS 和 ubuntu上都会自带python。这里我们
- 第一种方式阿里云、百度云服务器可用!!!yum install python3第二种方式1.下载python3.6.5的压缩包wget ht
- 这篇文章主要介绍了Python字符串格式化输出代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 特点:1.图片预载入,载入后再显示。意图一次呈现,不会让一块一块下载破坏你的页面,绝佳的用户体验,颠覆传统的浏览器呈现图片的处理方式(需要后
- 前言help(argparse)查看说明文档,“argparse - Command-line parsing libr
- 本文实例为大家分享了python处理大日志文件的具体代码,供大家参考,具体内容如下# coding=utf-8import sysimpor
- 在实际应用中,我们经常需要使用定时器去触发一些事件。Python中通过线程实现定时器timer,其使用非常简单。看示例:import thr
- 1、最小二乘也可以拟合二次函数我们都知道用最小二乘拟合线性函数没有问题,那么能不能拟合二次函数甚至更高次的函数呢?答案当然是可以的。下面我们
- 本文所示代码实现python编程方向键控制图片上下左右,我们首先看下演示结果。演示:实例代码:bif="1.jpg" m
- 本来想等到IE8正式发布时再在blog中写段代码,用来提示IE6用户升级到IE8的,不过貌似IE 8已经RTM了,今天又正好看到这个“升级I
- asp+js做的一个dig程序中的投票(有的叫顶一下,踩一下),由于代码较长,只贴出核心部分:投票中的代码相关文章推荐:ajax +asp
- extend()方法追加序列内容到列表。语法以下是extend()方法的语法:list.extend(seq)参数 &
- 使用Windows的wmic命令,获取可执行文件的运行状况、文件路径、PID,如果可执行文件挂掉,就重启并邮件告警
- 由于多种原因,进行安全设置的人们常常不理解数据的真正价值,所以,他们也无法对数据进行合适的保护。将你的数据只限于需要的人访问,并保证访问的人
- 协程协程简单来说就是一个更加轻量级的线程,并且不由操作系统内核管理,完全由程序所控制(在用户态执行)。协程在子程序内部是可中断的,然后转而执
- 我从Stephen A. Goss那读到关于了《Python 3正在毁灭Python》。这篇文章有不少精彩的论点,但我却并不认为Python
- 函数调用方法:numpy.array(object, dtype=None)各个参数意义:object:创建的数组的对象,可以为单个值,列表