【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

相关文章

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录