首页 > 其他分享 >PyTorch项目实战02——Tensor张量的创建

PyTorch项目实战02——Tensor张量的创建

时间:2023-04-19 21:04:45浏览次数:36  
标签:02 Tensor 创建 torch 张量 PyTorch add tensor

1 Tensor介绍

Tensor 是 tensorflow 的一个基础概念——张量。 是具有统一类型(称为 dtype)的多维数组。

Tensorflow里的数据用到的都是tensor,所以谷歌起名为tensorflow。

就像 Python 数值和字符串一样,所有张量都是不可变的:永远无法更新张量的内容,只能创建新的张量。

Tensor 的数组里可以是零维(也可称为标量或一个数)、一维、二维及多维。Tensor 自称为神经网络界的 Numpy,它与 Numpy 相似,二者可以共享内存,且之间的转换非常方便和高效。最大的区别是 Numpy 会把 ndarray 放在 CPU 中进行加速运算,而由 Torch 产生的 Tensor 会放在 GPU 中进行加速运算(如果环境中存在GPU的话)。

2 Tensor操作概述

对 Tensor 的操作很多,从接口的角度来划分,可以分为两类:

  • torch.function,如 torch.sum、torch.add 等;
  • tensor.function,如 tensor.view、tensor.add 等。

这些操作对大部分 Tensor 都是等价的,如 torch.add(x, y) 与 x.add(y) 等价。在实际使用中,可以根据个人使用偏好进行选择。

如果从修改方式的角度来划分,可以分为如下两类:

  • 不修改自身数据,如 x.add(y),x 的数据不变,返回一个新的 Tensor;
  • 修改自身数据,如 x.add_(y),运算符带下划线后缀,运行结果会保存在x中,x 被修改。

PyTorch项目实战02——Tensor张量的创建_随机数

3 Tensor 的创建

3.1 根据list数据创建

使用 torch.Tensor([1,3,5,7,9]) 或者 torch.tensor([1,3,5,7,9]) 都可以创建Tensor,但是数据类型会不一样,torch.Tensor(list) 创建的Tensor中数据类型为浮点型,而 torch.tensor(list) 创建的Tensor中数据类型为整型。

PyTorch项目实战02——Tensor张量的创建_数据类型_02

3.2 根据指定形状创建

如创建二行三列的二维数组,使用如下语句:

torch.Tensor(2,3)

生成的Tensor中,程序会为我们创建一个使用随机数据组成的二维数组。

因为仅指定的每一维度数组的长度,并没有指定数组中具体的数据,因此如果使用 torch.tensor(2,3) 方式创建Tensor,就会报错。

PyTorch项目实战02——Tensor张量的创建_数据类型_03

3.3 根据给定Tensor的形状创建

这里可以使用 torch.tensor() 方法或者 torch.Tensor() 创建Tensor,生成一个二维数组:

PyTorch项目实战02——Tensor张量的创建_随机数_04

3.4 根据已有形状创建

在创建新的Tensor之前,已经创建了一个二维的Tensor,然后用原Tensor的形状创建新的Tensor。

获取已有Tensor的形状,可以使用 t.size()方法。

PyTorch项目实战02——Tensor张量的创建_随机数_05

3.5 创建一维张量

使用 torch.Tensor(1) 创建的是一个随机数据的,大小(size)为1的张量;

而使用 torch.tensor(1) 创建的是一个固定值为1的张量。

PyTorch项目实战02——Tensor张量的创建_随机数_06

3.6 根据规则创建

调用torch中封装好的方法,创建需要的Tensor。

3.6.1 创建单位矩阵

调用torch.eye() 方法,可创建出对角线为1,其它均为0的单位矩阵。

PyTorch项目实战02——Tensor张量的创建_数据类型_07

3.6.2 创建全0矩阵

调用 torch.zeros() 方法,创建全为0的矩阵。

PyTorch项目实战02——Tensor张量的创建_随机数_08

3.6.3 根据标准分布随机数创建

调用 torch.randn() 方法,创建根据标准分布随机数组成的矩阵。

PyTorch项目实战02——Tensor张量的创建_随机数_09

3.6.4 根据均匀分布随机数创建

调用 torch.rand() 方法,创建根据均匀分布随机数组成的矩阵。

PyTorch项目实战02——Tensor张量的创建_随机数_10

3.6.5 根据给定形状创建全0矩阵

调用 torch.zeros_like() 方法,依据给定形状,创建一个全为0的矩阵。

PyTorch项目实战02——Tensor张量的创建_数据类型_11


标签:02,Tensor,创建,torch,张量,PyTorch,add,tensor
From: https://blog.51cto.com/u_113754/6207429

相关文章

  • 2022.4.19编程一小时打卡
    一、问题描述:设计一个类people,有保护数据成员:age(年龄,整型),name(姓名,string),行为成员:两个构造函数(一个默认,另一个有参数);默认析构函数;voidsetValue(intm,stringstr)给age和name赋值;有一个void类型的纯虚函数display()。设计一个学生类student,公有继承类people,有私有成员......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之008 week01 02-08 通过常见算法,对常
    1、线性查找法的复杂度publicstatic<E>intsearch(E[]data,Etarget){for(inti=0;i<data.length;i++)if(data[i].equals(target))returni;return-1;}很容易看出,这个算法的复杂度为O(n)。2、一个数组中的元素可以两两组成......
  • 2023-04-19:给定一个非负数组arr 任何两个数差值的绝对值,如果arr中没有,都要加入到arr里
    2023-04-19:给定一个非负数组arr任何两个数差值的绝对值,如果arr中没有,都要加入到arr里然后新的arr继续,任何两个数差值的绝对值,如果arr中没有,都要加入到arr里一直到arr大小固定。请问最终arr长度是多少。1<=arr的长度<=10^50<=arr的数值<=10^5来自国外题目论坛。答......
  • DAMA认证|2021年大数据存储安全如何管理?
    在大数据(Bigdata)时代,通过互联网、社交网络、物联网,人们能够及时全面地获得大信息。同时,信息自身存在形式的变化与演进,也使得作为信息载体的数据以远超人们想象的速度迅速膨胀。随着Ai、5G、IoT的兴起和发展,全球每年产生的数据以爆发的态势急速增长。数据存储是基础且关键......
  • Codeforces Round 850 (Div. 2, based on VK Cup 2022 - Final Round) E. Monsters (h
    传送门详细题解传送门  抄的ygg代码,向在这里说一下刚开始没看懂的部分。  求答案的时候是把所有的当前为止的所有数值加起来减去一个从1开始并且公差为1的等差数列的前size项和。其中size是当前最多能用到哪个位置,满足前size项能构成1,2,3,....,sz这样的形式。  假设我们......
  • 20230418 >windows11 slmgr/ ato 命令和kms server
    Problems:1使用win11不打算使用微软账户,如何绕过2重装Windows11或者用virtualmachines搬运都得用到的,如何临时激活。这个作为testing用途,请勿用作商业用途。 SolutionstepA:重装的时候会遇到windows11在oobe界面下要求登入Microsoft账号,但由于只是作为测试用途......
  • 2023.1.19每日总结
    <%@pageimport="wangzhan.Pd_zhengce"%><%@pageimport="wangzhan.Thesql"%><%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtm......
  • 02 绘制简单几何图形
    图形渲染管线与绘制简单几何图形1.图形渲染管线回顾简要回顾一下GAMES101中闫老师提到的图形渲染管线。图形渲染管线可以理解为,将原始的3维图形数据经过一系列变化处理后,转换为2维坐标,再将2维坐标转换为实际的屏幕像素的过程。这一过程可以简单的描述为:首先我们要做的是输......
  • 2023/4/19
    今日站立会议,对任务进度进行报告,规划下一步如何进行,如何进行供货商数据库的对接,如何对数据进行处理。如何显示数据。 ......
  • 2023年4月19日周三
    计划找杨哥问邮件发送的问题研究如何实现权限控制新增修改接口的,这属于下周的审核权限了继续读懂代码,补充相关知识收集免费接口执行09点12分  继续看完英语那个10点02分  花钱买了还是,每天早上端电脑学吧,开始搞毕设11点32分  看了半天学校,16点42分  解决mo......