当前位置: 首页 > news >正文

【PyTorch】张量(Tensor)的生成

PyTorch深度学习总结

第一章 Pytorch中张量(Tensor)的生成


文章目录

  • PyTorch深度学习总结
  • 一、什么是PyTorch?
  • 二、张量(Tensor)
    • 1、张量的数据类型
    • 2、张量生成和信息获取
  • 总结


一、什么是PyTorch?

PyTorch是一个开源的深度学习框架,基于Python语言。它由Facebook的人工智能研究团队于2016年开发并发布。

PyTorch提供了一种灵活的、动态的计算图模型,使得开发者可以方便地构建和训练神经网络模型。PyTorch采用了动态图的方式,即在运行时才构建计算图,这与静态图的框架相比具有更大的灵活性和易用性。开发者可以使用Python的控制流语句标准库函数来定义和操作计算图,这使得模型的编写和调试变得更加简单和直观。

PyTorch还提供了丰富的工具和库,用于大规模训练和部署深度学习模型。其中包括数据加载和预处理模型定义优化算法可视化等功能。
此外,PyTorch还与许多其他常用的Python库和工具集成,如NumPySciPyJupyter Notebook

总之,PyTorch是一个强大而灵活的深度学习框架,它在易用性、灵活性和性能方面都具有优势,使得开发者可以更加自由地进行深度学习模型的设计、训练和部署。


二、张量(Tensor)

张量是一种数学对象,可以用来表示多维数组多维矩阵
张量在深度学习和神经网络中也被广泛应用,用于表示和处理大规模数据集。


1、张量的数据类型

在torch中CPU和GPU张量分别有8种数据类型:

数据类型DtypeCPU TensorGPU Tensor
32位浮点型Torch.float或torch.float32torch.FloatTensortorch.cuda.FloatTensor
64位浮点型Torch.double或torch.float64torch.DoubleTensortorch.cuda.DoubleTensor
16位浮点型Torch.half 或torch.float16torch.HalfTensortorch.cuda.HalfTensor
8位无符号整型Torch.uint8torch.ByteTensortorch.cuda.ByteTensor
8位有符号整型Torch.int8torch.CharTensortorch.cuda.CharTensor
16位有符号整型Torch.short 或Torch.int16torch.ShortTensortorch.cuda.ShortTensor
32位有符号整型Torch.int或Torch.int32torch.IntTensortorch.cuda.IntTensor
64位有符号整型Torch.long 或Torch.int64torch.LongTensortorch.cuda.LongTensor

Torch中默认数据类型为:torch.FloatTensortorch.int64
如果要修改默认数据类型可以使用函数:
torch.set_default_tensor_type()
(注:此函数只有torch.DoubleTensortorch.FloatTensor两个参数)

①自动生成情况分析:

# 引入库
import torch# 创建张量
a = torch.tensor([1, 2])  # 均为整数
print(a.dtype)

输出结果为:torch.int64

# 引入库
import torch# 创建张量
a = torch.tensor([1.2, 2])  # 涉及到小数
print(a.dtype)

输出结果为:torch.float32

②修改后情况分析:

# 引入库
import torch# 创建张量
torch.set_default_tensor_type(torch.DoubleTensor)
a = torch.tensor([1, 2])
print(a.dtype)

输出结果为:torch.int64

# 引入库
import torch# 创建张量
torch.set_default_tensor_type(torch.DoubleTensor)
a = torch.tensor([1.2, 2])
print(a.dtype)

输出结果为:torch.float64


2、张量生成和信息获取

张量生成:

A = torch.tensor([[1, 1], [2, 2]])

深度学习中需要对梯度大小进行更新,所以需要计算梯度,需注意只有浮点型数据才可以计算梯度。

B = torch.tensor([[1, 1], [2, 2]], dtype=torch.float32, >requires_grad=True)

输出结果为:tensor([[1., 1.],[2., 2.]], dtype=torch.float32, requires_grad=True)

其中dtype设置数据类型,requires_grad设置是否需要计算梯度。

函数描述
torch.zeros(3, 3)3*3的全0张量
torch.ones(3, 3)3*3的全1张量
torch.eye(3, 3)3*3的单位张量
torch.full((3, 3) , full_value=0.25)3*3使用0.25填充的张量
torch.empty(3, 3)3*3的空张量
torch.rand(3, 3)3*3的随机张量
torch.ones_like(A)与A大小相同的全1张量
torch.zeros_like(A)与A大小相同的全0张量
torch.rand_like(A)与A大小相同的随机张量
torch.ones_like(A)与A大小相同的全1张量
torch.arange(start=0, end=2, step=1)tensor([0, 1])

张量信息获取:

获取张量维度:

# 获取张量维度
A_shape = A.shape
print(A_shape)

输出结果为:torch.Size([2, 2])

获取张量大小:

# 获取张量维度
A_size = A.size()
print(A_size)

输出结果为:torch.Size([2, 2])

获取张量中包含元素数量:

# 获取张量中包含元素数量
A_number = A.numel()
print(A_number)

输出结果为:4


总结

张量在深度学习中起着重要的作用。在深度学习中,数据通常以张量的形式表示。
张量的数值存储了模型的参数值数据的特征表示,通过对张量进行运算和优化,可以使模型逐渐学习到更好的特征表示和参数。
张量的计算和变换是深度学习的核心操作,它们的高效实现对于深度学习算法的训练和推理过程至关重要

相关文章:

【PyTorch】张量(Tensor)的生成

PyTorch深度学习总结 第一章 Pytorch中张量(Tensor)的生成 文章目录 PyTorch深度学习总结一、什么是PyTorch?二、张量(Tensor)1、张量的数据类型2、张量生成和信息获取 总结 一、什么是PyTorch? PyTorch是一个开源的深度学习框架,基于Python…...

【5G NR】【一文读懂系列】移动通讯中使用的信道编解码技术-Viterbi译码原理

目录 一、引言 二、Viterbi译码的基本原理 2.1 卷积码与网格图 2.2 Viterbi算法的核心思想 2.3 路径度量与状态转移 三、Viterbi译码算法工作原理详解 3.1 算法流程 3.2 关键步骤 3.3 译码算法举例 3.4 性能特点 四、Viterbi译码的应用场景 4.1 移动通信系统 4.2 卫…...

矩阵在计算机图像处理中的应用

矩阵在计算机图像处理中是非常核心的概念,因为它们为表示和操作图像数据提供了一种非常方便和强大的方式。以下是矩阵在计算机图像处理中的一些关键作用: 图像表示:在计算机中,图像通常被表示为像素矩阵,也就是二维数组…...

Java实现教学资源共享平台 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…...

Spring Boot(六十五):使用 ant.jar 执行 SQL 脚本文件

ant用处,主要用在编译java文件,打包,部署。打包:jar,war,ear包等。ant在项目中有很重要的作用。今天我们讲解它的另一个作用:执行 SQL 脚本文件。 1 引入依赖 <dependency><groupId>org.apache.ant</groupId><artifactId>ant</artifactId&g…...

161基于matlab的快速谱峭度方法

基于matlab的快速谱峭度方法&#xff0c;选择信号峭度最大的频段进行滤波&#xff0c;对滤波好信号进行包络谱分析。输出快速谱峭度及包络谱结果。程序已调通&#xff0c;可直接运行。 161 信号处理 快速谱峭度 包络谱分析 (xiaohongshu.com)...

CTFshow-WEB入门-信息搜集

web1&#xff08;查看注释1&#xff09; wp 右键查看源代码即可找到flag web2&#xff08;查看注释2&#xff09; wp 【CtrlU】快捷键查看源代码即可找到flag web3&#xff08;抓包与重发包&#xff09; wp 抓包后重新发包&#xff0c;在响应包中找到flag web4&#xff08;robo…...

django密码管理器(创建项目)

目录 创建项目 安装django 创建项目(django-admin) 创建管理员用户 创建数据库 创建项目 新建一个项目文件夹&#xff0c;如"密码管理器" 安装django 要先安装pip,pip安装地址:pypi.org、pypi.python.org、cheeseshop.python.org pip install django 创建项…...

Centos7之Oracle12c安装与远程连接配置

Centos7之Oracle12c安装与远程连接配置 文章目录 Centos7之Oracle12c安装与远程连接配置1.Oracle官网2. Centos7中安装Oracle12c(12.2.0.1.0)2.1 Introduction (介绍)2.2 Prerequisites(先决条件)2.3 Installation Steps(安装步骤)2.4 Oracle Installer Screens(Oracle安装程序…...

CVE-2022-25578 漏洞复现

CVE-2022-25578 路由/admin/admin.php是后台&#xff0c;登录账号和密码默认是admin、tao&#xff0c;选择文件管理。 是否还记得文件上传中的.htaccess配置文件绕过发&#xff0c;在这个文件中加入一句AddType application/x-httpd-php .jpg&#xff0c;将所有jpg文件当作php…...

Ubuntu22.04安装黑屏(进入U盘安装引导时 和 安装完成后)

一&#xff1a;进入U盘安转引导时黑屏 问题描述&#xff1a;选择’try or install ubuntu’&#xff0c;开始安装&#xff0c;出现黑屏。 解决方法&#xff1a;&#xff08;可行&#xff09; 安装时&#xff0c;先选择" try or install ubuntu", 此时不要按enter&a…...

一、DataX简介

DataX简介 一、什么是DataX二、DataX设计三、支持的数据源四、框架设计五、运行原理六、DataX和Sqoop对比 一、什么是DataX DataX是阿里巴巴开源的一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库&#xff08;MySQL、Oracle等&#xff09;、HDFS、Hive、OD…...

直播app开发,技术驱动的实时互动新纪元

随着互联网技术的快速发展&#xff0c;直播已成为我们日常生活的重要组成部分。从娱乐、教育到商业活动&#xff0c;直播的广泛应用正在改变着我们的生活和工作方式。在这一变革中&#xff0c;直播开发扮演着至关重要的角色。本文将探讨直播开发的核心理念、技术挑战以及未来的…...

Apache POI的介绍以及使用示例

Apache POI 是一套开源的 Java 库&#xff0c;用于读取和写入 Microsoft Office 文档格式&#xff0c;如 Excel、Word 和 PowerPoint。Spring Boot 是一个流行的 Java 应用程序框架&#xff0c;用于简化 Spring 应用的开发和部署。将 Apache POI 与 Spring Boot 结合使用&#…...

npm config set registry https://registry.npm.taobao.org 这个设置了默认的镜像源之后如何恢复默认的镜像源

要恢复npm默认的镜像源&#xff0c;你可以使用以下命令将registry设置回npm的官方源&#xff1a; npm config set registry https://registry.npmjs.org/这个命令会修改你的全局npm配置&#xff0c;将包的下载源改回npm官方的源。这样做之后&#xff0c;任何后续的npm install…...

算法沉淀——位运算(leetcode真题剖析)

算法沉淀——位运算 常用位运算总结1.基础位运算2.确定一个数中第x位是0还是13.将一个数的第x位改成14.将一个数的第x位改成05.位图6.提取一个数最右边的17.删掉一个数最右边的18.异或运算9.基础例题 力扣题目讲解01.面试题 01.01. 判定字符是否唯一02.丢失的数字03.两整数之和…...

React18原理: 再聊Fiber架构下的时间分片

时间分片 react的任务可以被打断&#xff0c;其实就是基于时间分片的人眼最高能识别的帧数不超过30帧&#xff0c;电影的帧数差不多是在24浏览器的帧率一般来说是60帧&#xff0c;也就是每秒60个画面, 平均一个画面大概是16.5毫秒左右浏览器正常的工作流程是运算渲染&#xff…...

【玩转408数据结构】线性表——线性表的顺序表示(顺序表)

知识回顾 通过前文&#xff0c;我们了解到线性表是具有相同数据类型的有限个数据元素序列&#xff1b;并且&#xff0c;线性表只是一种逻辑结构&#xff0c;其不同存储形式所展现出的也略有不同&#xff0c;那么今天我们来了解一下线性表的顺序存储——顺序表。 顺序表的定义 …...

图像处理之《黑盒扰动的可逆噪声流鲁棒水印》论文阅读

一、文章摘要 近年来&#xff0c;基于深度学习的数字水印框架得到了广泛的研究。现有的方法大多采用基于“编码器-噪声层-解码器”的架构&#xff0c;其中嵌入和提取过程分别由编码器和解码器完成。然而&#xff0c;这种框架的一个潜在缺点是编码器和解码器可能不能很好地耦合…...

一个Vivado仿真问题的debug

我最近在看Synopsys的MPHY仿真代码&#xff0c;想以此为参考写个能实现PWM-G1功能的MPHY&#xff0c;并应用于ProFPGA原型验证平台。我从中抽取了一部分代码&#xff0c;用Vivado自带的仿真器进行仿真&#xff0c;然后就遇到了一个莫名其妙的问题&#xff0c;谨以此文作为debug…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...