【pytorch04】创建Tensor

2024-06-23 12:12
文章标签 创建 tensor pytorch04

本文主要是介绍【pytorch04】创建Tensor,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

numpy中的数据创建tensor

在这里插入图片描述
数据已经在numpy中了,将numpy中的数据转到tensor中来,因为我们将使用tensor在GPU上进行加速运算
从NUMPY导入的FLOAT其实是DOUBLE类型

list中的数据创建tensor

在这里插入图片描述
FloatTensor()和大写的Tensor()接收的是shape(即数据的维度),当让也可以接收现有的数据,
接收数据时必须用list表示,接收shape时不需要中括号的(2,3)

小写的tensor()接收的是现有的数据

建议使用小写的给现成的数据,使用大写的情况少用

生成未初始化的数据

  • Torch.empty()

  • Torch.FloatTensor(d1,d2,d3)

    • Not torch.FloatTensor([1,2]) = torch.tensor([1,2])
  • Torch.IntTensor(d1,d2,d3)
    加的都是shape

在这里插入图片描述

设置默认数据类型

pytorch的默认类型是FloatTensor
增强学习一般使用double,其他一般使用float
在这里插入图片描述

随机初始化

  • [0,1] 均匀的采样在0~1之间
  • [min,max)
  • *_like

在这里插入图片描述
rand_like(a) 把a.shape读出来再送给random函数
randint(1,10,[3,3])第一个参数是最小值,第二个参数是最大值,第三个参数是shape

正态分布

  • N(0,1)
  • N(u,std)
    在这里插入图片描述
    randn(3,3) 初始化,均值为0方差为1,因此它的值可能会集中在0附近,会有一个方差为1的波动,基本在0的附近波动,因为方差比较大,所以会在一个大的范围之内跳动

torch.normal(mean=torch.full([10],0),std=torch.arange(1,0,-0.1))可以自定义均值和方差,例如要抽样3×3的正态分布的数据,先把3×3打平成9,再给出一个维度为9的list [9]的这样的均值mean,在给定一个维度为9的这样的方差std,因为3×3的tensor都是采样于同一个正态分布所以这9个数据所有的均值和方差都是一样的

torch.normal(mean=torch.full([10],0),std=torch.arange(1,0,-0.1))
full([10],0)是生成长度为10但是都为0这样的向量[0,0,0,0,0,0,0,0,0,0]
方差的话是从1到0慢慢的减小[1.0,0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1]arange不包含右边界也就是不包含0

生成的这个数据一共有十个方差,第一个方差会比比较大,所以跳动的返回比较大,后面会慢慢收敛

得到了一个dimension为1长度为10的tensor
可以用reshape改变形态

赋值为一个元素

在这里插入图片描述
设置为一个标量,dimension是0,所以给shape给一个空的例子就行[]
torch.full([],7)

如果要给一个dimension为1的向量,给一个括号括起来就行了
torch.full([1],7)

递增或递减生成等差数列

在这里插入图片描述

生成等分向量

linspace(0,10,steps=4) 这里的10是包含的,这里的steps是数量值,比如这里是4,就会把0到10等分成一个3.3,6.6,10这样的数列,可以这么认为0是开始的位置,所以还需要3个等分片段也就是将1~10这10个数字除以3,10/3=3.3333

logspace(0,-1,steps=10)0到-1之间切割成10份然后作为以10为底,指数部分为等分的指数
logspace的base参数可以设置为2,10,e等底数
在这里插入图片描述

生成全部是0或1或单位矩阵的tensor

在这里插入图片描述

在这里插入图片描述

生成随机打散的tensor

在这里插入图片描述

randperm(10)是生成0到10的索引不包含10
生成这个索引可以用来shuffle

有a和b的tensor,我们希望再dimension=0的维度上随机的shuffle,并且希望再shuffle的时候保持配对

比如说第一个tensor表示[人名,数学分数],第二个tensor表示人[人名,语文分数],因此shuffle的时候,可以在人这个维度上随机shuffle但是每个人的语文分数和数学分数必须匹配起来,因此我们需要用同一个索引来做shuffle

我们用索引的种子来做shuffle,如果是[0,1]的话就是维持不变,[1,0]的话就是第一个人和第二个人换一下位置,如果第一个人和第二个人换位置之后数学成绩反过来了,那语文成绩也要反过来
在这里插入图片描述

这篇关于【pytorch04】创建Tensor的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087123

相关文章

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Macos创建python虚拟环境的详细步骤教学

《Macos创建python虚拟环境的详细步骤教学》在macOS上创建Python虚拟环境主要通过Python内置的venv模块实现,也可使用第三方工具如virtualenv,下面小编来和大家简单聊聊... 目录一、使用 python 内置 venv 模块(推荐)二、使用 virtualenv(兼容旧版 P

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Java 如何创建和使用ExecutorService

《Java如何创建和使用ExecutorService》ExecutorService是Java中用来管理和执行多线程任务的一种高级工具,可以有效地管理线程的生命周期和任务的执行过程,特别是在需要处... 目录一、什么是ExecutorService?二、ExecutorService的核心功能三、如何创建

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc