《Pytorch新手入门》第一节-认识Tensor

《Pytorch新手入门》第一节-认识Tensor

  • 一、认识Tensor
    • 1.1 Tensor定义
    • 1.2 Tensor运算操作
    • 1.3 Tensor与numpy转换

参考《深度学习框架PyTorch:入门与实践_陈云(著)》

一、认识Tensor

1.1 Tensor定义

Tensor 是 PyTorch 中重要的数据结构,可认为是一个高维数组。它可以是一个数(标量)一维数组(向量)二维数组(阵)或更高的数组。Tensor 和 numpy的ndarrays类似,但Tensor 可以使用GPU加速。

import torch
# 创建一个5*3的矩阵
x = torch.Tensor(5, 3)

在这里插入图片描述

# 查看Tensor的形状
print(x.size())
# 查看Tensor某一维的大小,两种写法等价
print(x.size()[0], x.size(1))
'''
torch.Size([5, 3])
5 3
'''

torch.size是tuple对象的子类,因此它支持 tuple 的所有操作,如xsize0[0]。

# 使用[0,1]均匀分布随机初始化二维数组
y = torch.rand(5, 3)

在这里插入图片描述

1.2 Tensor运算操作

# Tensor加法的三种写法
print(x + y)
print(torch.add(x, y))
print(torch.add(x, y, out=torch.Tensor(5, 3)))

在这里插入图片描述

# 将一个Tensor加到另一个Tensor
print(y.add(x)) #普通加法,不改变y的内容
print(y.add_(x)) # inplace加法,改变y的内容

函数名后面带下划线_的函数会修改 Tensor 本身。例如,x.add_()和x.t_()会改变x,但x.add()和x.t()会返回一个新的 Tensor,而x不变。
Tensor的切片操作与numpy类似,Tensor还支持很多操作,包括数学运算、线性代数、选择、切片等,其接口设计与numpy极为相似。

print(x[:, 1])
'''
tensor([0.0000e+00, 1.0516e-35, 0.0000e+00, 1.0515e-35, 0.0000e+00])
'''

1.3 Tensor与numpy转换

Tensor和numpy的数组间的互操作非常容易且快速。Tensor 不支持的操作,可以先转为 numpy 数组处理,之后再转回 Tensor。Tensor 和 numpy 对象共享内存,所以它们之间的转换很快,而且几乎不会消耗资源。

# tensor——》numpy array
a = torch.ones(5)
b = a.numpy()
'''
a tensor([1., 1., 1., 1., 1.])
b [1. 1. 1. 1. 1.]
'''
a.add_(1)
'''
a tensor([2., 2., 2., 2., 2.])
b tensor([2., 2., 2., 2., 2.])
'''
import numpy as np
# numpy array——》tensor
a = np.ones(5)
b = torch.from_numpy(a)

Tensor可通过.cuda方法转为GPU的Tensor,从而享受GPU带来的加速运算。

# 在不支持CUDA的机器下,这一步不会运行
if torch.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    print(x+y)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/114141.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端设计】HTML+CSS+JavaScript基本特性

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

【chatglm3】(2)使用docker运行chatglm3对外的http服务,使用python代码执行函数调用,查询北京天气

函数调用的演示视频: 使用docker运行最新chatglm3-6b,对外的http服务,使用python代码执行函数调用,查询北京天气代码演示和说明 使用docker运行最新chatglm3-6b,对外的http服务,使用python代码执行函数调用…

Centos7扩容

Centos7扩容 保证虚拟机关机且没有快照的情况下按照下图进行操作: 设置好后开机,查看分区情况: [rootlocalhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 17G 12G 5.4G 69% / …

5.RDD持久化

概述 今日目标: RDD 持久化 RDD持久化原理RDD持久化策略如何选择RDD持久化策略案例 相关文章如下: spark官网地址RDD编程指南 RDD 持久化 RDD持久化原理 Spark中最重要的功能之一是跨操作在内存中持久化(或缓存)数据集。当…

k8s系列文章一:安装指南

前言 k8s是docker的升级版,可用于docker集群配置管理微服务 一、更新ubuntu系统版本 sudo apt update sudo apt upgrade二、添加GPG密钥(阿里源) 尽管我不知道gpg是个什么东西,反正跟着做就完了 curl https://mirrors.aliyun.com/kubernetes/apt/do…

利用win32的GetLastInputInfo函数实现锁屏(C#)

前两天看到群里面讨论这个问题,刚好我们上一家公司的系统也有这个功能,就研究了一下,我们这边实现这个功能的目的如下:当用户长时间不操作系统时,自动退出系统并退回到登录界面,想要使用系统,就…

MySQL-----事务

事务的概念 事务是一种机制,一个操作序列。包含了一组数据库的操作命令,所有的命令都是一个整体,向系统提交或者撤销的操作,要么都执行,要么都不执行。 是一个不可分割的单位 事务的ACID特点 ACID,是指在可…

趋势:实时的stable diffusion

视频中使用了实时模型:只需2~4 个步骤甚至一步即可生成768 x 768分辨率图像。 这项技术可以把任意的stable diffusion模型转为实时模型。 潜在一致性模型 LCM LCM 只需 4,000 个训练步骤(约 32 个 A100 GPU 一小时)即可从任何预训练的SD模型中…

BetterDisplay Pro v1.4.15(显示器管理管理软件)

BetterDisplay Pro是一款屏幕显示优化工具,可用于Windows和Mac操作系统。它可以帮助用户调整屏幕的亮度、对比度、色彩等参数,以获得更好的视觉体验。此外,BetterDisplay Pro还提供了一些额外的功能,如屏幕分割、窗口管理、快捷键…

本地模拟,服务器下载文件

题目要求: 编写客户端程序和服务器端程序客户端可以输入一个音乐 文件名,比如 美丽中国,服务端 收到音乐后,可以给客户端返回这个音乐文件,如果服务器没有这个文件,返回一个默认的音乐即可客户端收到文件后…

[架构之路-251/创业之路-82]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 商业智能、决策支持系统、知识管理

目录 前言: 一、企业信息化的结果:常见企业信息化软件 1.1 商业智能 - 管理层 1.1.1 什么是商业智能What 1.1.1.1 商业智能常见工具 1.1.2 为什么需要商业智能Why? 1.1.3 谁需要商业智能who? 1.1.4 商业智能在企业管理中的…

DC电源模块外壳材质对模块的影响有多少

BOSHIDA DC电源模块外壳材质对模块的影响有多少 DC电源模块外壳材质对模块的影响可能是多方面的,以下列举几点可能的影响: 1. 机械强度:外壳材质可能会影响模块的机械强度和耐久性,例如使用高强度材质可能会使模块更加耐用。 2.…

第一个QT程序

新建工程&#xff1a; 1. 点击“New Project” 2. 选择“Qt Widgets Application” 3. 工程名和路径 4. 构建系统选择 5. Details 一些细节 6. 选择Kits 7. 完成工程创建 点完成按钮 8. 运行下看 9. 一些示例代码 //main.cpp #include "mywidget.h"#include <Q…

JTA分布式事务管理器

XA协议:是一种标准协议&#xff0c;允许事务管理器协调多个资源管理器&#xff0c;确保在分布式事务中的一致性和原子性。 JTA:是JavaEE规范中的一种&#xff0c;用于管理分布式事务的 API&#xff0c;提供了事务的控制和协调机制 Atomikos理解成JTA的实现 XA是JTA的基础(JT…

springboot+mybatis查询两次数据库结果不一致

最近遇到个bug记录一下。情景再现&#xff1a;在一个方法里有多次查询数据库的操作&#xff0c;但查询出的数据字段会被自动翻译。&#xff08;比如1翻译成是&#xff0c;2翻译成否&#xff09;。原因&#xff1a;mybatis缓存会被代码修改。在同一个sqlsession下&#xff0c;第…

遥遥领先,免费开源的django4-vue3前后端分离项目

星域后台管理系统前端介绍 &#x1f33f;项目简介 本项目前端基于当下流行且常用的vue3作为主要技术栈进行开发&#xff0c;融合了typescript和element-plus-ui&#xff0c;提供暗黑模式和白昼模式两种主题以及全屏切换&#xff0c;开发bug少&#xff0c;简单易学&#xff0c…

学习笔记|两组率卡方检验和Fisher确切法|适用条件|规范表达|《小白爱上SPSS》课程:SPSS第十五讲 | 两组率卡方检验和Fisher确切法怎么做?

目录 学习目的软件版本原始文档两组率卡方检验和Fisher确切法适用条件简述一、实战案例读数据&#xff1a; 二、统计策略三、SPSS操作四、结果解读第一&#xff0c;分组统计描述结果第二&#xff0c;卡方检验。 五、规范报告1、规范表格2、规范文字 学习目的 SPSS第十五讲 | 两…

Windows、程序员必装的工具

一、Typora 啥也不说了直接上图 Markdown语法 Typora免费版 提取码&#xff1a;av01 二维码&#xff1a; 1&#xff09;页面展示 2&#xff09;主题 3&#xff09;偏好设置 4&#xff09;Markdown语法设置偏好 5&#xff09;编辑器 6&#xff09;系统 二、Snipaste Snipaste…

腾讯云双11活动时间、活动入口、优惠政策详细解读

2023年腾讯云双11大促活动已开启&#xff0c;作为年终最大的一次优惠促销活动&#xff0c;腾讯云的优惠力度还是不错的&#xff0c;爆款云服务器首年88元&#xff0c;还有9999元大额代金券免费领取&#xff01; 一、腾讯云双11活动时间 即日起至2023-11-30 23:59:59&#xff0…

Modelsim 使用教程(4)—— Working With Multiple Libraries

一、概述 在文中&#xff0c;我们将练习使用多个库。在实际的项目开发过程中&#xff0c;我们可能有多个库来组织设计&#xff0c;从第三方源代码访问IP&#xff0c;或者在仿真之间共享公共部分。我们将通过创建一个包含计数器设计单元的资源库来开始本文。接下来&#xff0c;我…