1.Pytorch中tensor的生成与访问

可以使用arange()创建一个张量:如,torch.arange(12)创建0开始的前12个整数:

除非特殊指定,否则新的张量将存放在内存中,并采用CPU计算。

可以使用reshape()来改变张量的形状:

注意,reshape()的发起者是一个张量,比如这里的x.reshape(),x是一个张量。reshape操作只改变张量的形状,

并不改变张量的大小(元素的数量)以及张量中的值。还可以用x.reshape(-1,4)或x.reshape(3,-1)实现x.reshape(3,4)

同样的功能。

使用tensor.zeros()创建全0的tensor,括号内指定该全0的tensor的形状,如:

上面的例子创建了一个形状为(2,3,4)的tensor。全1同理:

使用torch.randn()创建均值为0,方差为1的标准正态分布张量,括号内同样是指定张量的形状,如:

还可以用python的列表来为张量指定值和形状,写法为:torch.tensor() :

可以使用torch.zeros_like(y)创建与y同形状的全0张量:

可以使用shape查看张量的形状:

注意,shape的发起者一定也是张量。比如这里的x.reshape(3,4)是shape动作的发起者,它是一个三行四列的张量。

2.Tensor的基本计算

加、减、乘、除、乘方、幂指这些运算,都可以直接用在张量上,表示按元素的计算(element-wise):

使用torch.exp()对张量的每一个元素做以e为底的幂指运算,括号内是某个张量:

使用torch.cat()拼接两个张量。括号中指出要拼接的两个张量以及dim的值,dim=0是竖着拼,dim=1是横着拼:

使用“==”对张量中的每一个数值判等,运算结果是一个布尔值构成的张量:

对张量中的所有元素进行求和,会产生一个单元素张量:

广播机制如下面的例子:

矩阵a将复制自身的列,矩阵b将复制自身的行,然后对应元素相加。

可以使用索引来访问tensor的元素,下面的例子中,X的是2维的,它的每一个元素是一个向量,X[0]访问第一个向量,

X[0,0]访问第一个向量中的第一个值:

特别地,可以用-1访问最后一个元素,用冒号":"进行连续访问:

这里面的"1:3"表示访问“下标”为1的元素(即第二个元素)开始的,连续的元素,一直到下标为3的元素(不包括3,前闭后开)。

还有以下的用法,将矩阵后两行全部赋值0:

将矩阵所有元素赋值0:

3.一个节省内存的方法

在为张量更新值的时候,如果只是简单的使用“x = expression”这样更新,则会为x分配一个新的内存。这样有两个不好的地方:

1. 机器学习中数据量很大,节约内存是有必要的。

2. 如果我们不原地更新,其他引用仍然可能指向旧的内存,这样可能会导致某些代码指向旧的参数。

原地更新的方法是:使用如x += 1代替x = x + 1 或使用切片:

4.Tensor与其他Python对象的转换

Pytorch的张量与Numpy的张量(ndarray)很容易相互转换:

Pytorch的只有一个元素,大小为1的张量同样可以很轻松地转换为python标量,可以使用item()函数,或强制类型转换,

如float(),int()等:

Pytorch数据操作的更多相关文章

  1. pytorch 数据操作

    数据操作 在深度学习中,我们通常会频繁地对数据进行操作.作为动手学深度学习的基础,本节将介绍如何对内存中的数据进行操作. 在PyTorch中,torch.Tensor是存储和变换数据的主要工具.如果你 ...

  2. 【转载】PyTorch系列 (二):pytorch数据读取

    原文:https://likewind.top/2019/02/01/Pytorch-dataprocess/ Pytorch系列: PyTorch系列(一) - PyTorch使用总览 PyTorc ...

  3. Pytorch数据读取框架

    训练一个模型需要有一个数据库,一个网络,一个优化函数.数据读取是训练的第一步,以下是pytorch数据输入框架. 1)实例化一个数据库 假设我们已经定义了一个FaceLandmarksDataset数 ...

  4. PyTorch数据加载处理

    PyTorch数据加载处理 PyTorch提供了许多工具来简化和希望数据加载,使代码更具可读性. 1.下载安装包 scikit-image:用于图像的IO和变换 pandas:用于更容易地进行csv解 ...

  5. PyTorch 数据并行处理

    PyTorch 数据并行处理 可选择:数据并行处理(文末有完整代码下载) 本文将学习如何用 DataParallel 来使用多 GPU. 通过 PyTorch 使用多个 GPU 非常简单.可以将模型放 ...

  6. StackExchange.Redis帮助类解决方案RedisRepository封装(字符串类型数据操作)

    本文版权归博客园和作者本人共同所有,转载和爬虫请注明原文链接 http://www.cnblogs.com/tdws/tag/NoSql/ 目录 一.基础配置封装 二.String字符串类型数据操作封 ...

  7. hive数据操作

    mdl是数据操作类的语言,包括向数据表加载文件,写查询结果等操作 hive有四种导入数据的方式 >从本地加载数据 LOAD DATA LOCAL INPATH './examples/files ...

  8. Dapper 数据操作框架

    数据操作DapperFrom NuGet:Install-Package DapperorInstall-Package Dapper.StrongName微型ORM:PetaPoco获得PetaPo ...

  9. Django数据操作F和Q、model多对多操作、Django中间件、信号、读数据库里的数据实现分页

    models.tb.objects.all().using('default'),根据using来指定在哪个库里查询,default是settings中配置的数据库的连接名称. 外话:django中引 ...

  10. coreData数据操作

    // 1. 建立模型文件// 2. 建立CoreDataStack// 3. 设置AppDelegate 接着 // // CoreDataStack.swift // CoreDataStackDe ...

随机推荐

  1. 深入理解css 笔记(6)

    网格布局:flexbox 彻底改变了网页布局方式,但这只是开始.它还有一个大哥:另一个称作网格布局模块的新规范.这两个规范提供了一种前所未有的全功能布局引擎.跟 flexbox 类似,网格布局也是作用 ...

  2. linux离线安装插件包

    1.下载插件包(联网的linux环境下) # 检查是否安装了vim(vim-minimal是vi) [root@localhost opt]# rpm -qa | grep vim vim-minim ...

  3. iphone 熄屏黑屏录像方法-取证拍摄-自带功能

    iphone 有个旁白模式是为了残疾盲人的只听模式. 1.在 设置 - 辅助功能 - 辅助功能快捷键 - 选旁白 ,这样按三下电源键进入/退出旁白模式. 2.把声音调没,这样旁白就不会发出朗读. 3. ...

  4. 解决Python写入yaml后排版混乱还丢失注释问题

    转载https://www.cnblogs.com/jiahm/category/1530828.html 大家有没有遇到过在使用Python进行yaml文件写入数据后,内容排版混乱并且丢失注释问题, ...

  5. ls和mkdir

    ls  查看当前目录的内容 1) ls -l 显示详细列表 2) Ls -lh 吧文件大小以人性化的方式展开 3) ls -a 显示所有的文件,包括隐藏文件,隐藏文件是已.开头的文件 4) ll 等于 ...

  6. Linux 里面安装多个jdk,进行切换

    alternatives --config java

  7. luffy项目全局配置

    一:media文件夹配置 settings.dev下配置media文件夹,暴露资源 media_path=BASE_DIR.parentMEDIA_ROOT=Path(media_path).join ...

  8. AttributeError: module 'torch._six' has no attribute 'PY3'

    修改:进到torch._six源码,看看里面是PY的哪个对象,修改成这对象名试试 _six.py 即将PY3修改为PY37

  9. 漫谈Python魔术方法,见过的没见过的都在这里了

    漫谈Python魔术方法,见过的没见过的都在这里了 就说一下,不深入 假的一览 提到魔术方法,学过python都应该知道一些.至少你得会__init__吧. 在我之前写的博文中有很多都涉及魔术方法.比 ...

  10. 痞子衡嵌入式:盘点国内RISC-V内核MCU厂商(2018年发布产品)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内RISC-V内核MCU厂商(2018). 虽然RISC-V风潮已经吹了好几年,但2019年才是其真正进入主流市场的元年,最近国内大量 ...