人工智能学习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


猜你喜欢
- 本文为大家分享了MySQL预编译功能,供大家参考,具体内容如下1、预编译的好处大家平时都使用过JDBC中的PreparedStatement
- mysql 加了 skip-name-resolve不能链接的问题,要确认 MySql 是否采用过主机名的授权在 MySql Server
- MySQL存储过程SAVEPOINT ROLLBACK to示例如下:DELIMITER $$DROP PROCEDURE IF EXIST
- 解决tensoflow如何在已训练模型上继续训练fineturn的问题。训练代码任务描述: x = 3.0, y = 100.0, 运算公式
- Pytorch多GPU运行设置可用GPU环境变量。例如,使用0号和1号GPU'os.environ["CUDA_VISIB
- 在Microsoft SQL Server 2000中,用于数据存储的实用工具是数据库。数据库的物理表现是操作系统文件,即在物理上,一个数据
- 1. 概述Python中 asyncio 模块内置了对异步IO的支持,用于处理异步IO;是Python 3.4版本引入的标准库。asynci
- 一.docx模块Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把
- <html> <head> <style type="text/css"> * {
- python面向对象编程入门,我们需要不断学习进步"""抽象工厂模式的实现"""
- 实现思路将视频(MP4 等)转换为 M3U8 视频的服务,可以按照以下步骤进行操作:将视频(MP4 等)转换为 M3U8:在服务中,使用适当
- 一、序言在csdn上有很多纯copy,这给我复现带来了很大的麻烦,所以我想根据我的个人找截图的经历记录下来,给未来的自己看,免得忘记了云云。
- 本文实例讲述了js传值后台中文出现乱码的解决方法。分享给大家供大家参考,具体如下:在“test.jsp”页面中,需要通过js将值传递到后台,
- 前言博主参与过大大小小十次数学建模比赛,也获得了不少建模奖项。对于一些小批量样本数据去做预测或者是评估其规律性的话,比较适合的模型一般都是选
- 第一种方法:第一步:先看报错窗口2003 can't connect to MySQL server on '127.0.0
- 实现在线人数统计最常用的方法就是golobal.asa结合session做,但这种方法有两个不利: 1、每个session要占用12k的服务
- cmd/compile 包含构成 Go 编译器主要的包。编译器在逻辑上可以被分为四个阶段,我们将简要介绍这几个阶段以及包含相应代码的包的列表
- (1)选择最有效率的表名顺序(只在基于规则的优化器中有效):Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写
- 在前面我们介绍了多种请求库,如 Requests、Urllib、Selenium 等。我们接下来首先贴近实战,了解一下代理怎么使用,为后面了
- 1. 序言每年淘宝双十一的时候,总是要刷各种各样的浏览页面,收集能量或者喵币或者什么。那既然如此,我就总想着,能否通过Python自动调用的