PyTorch基础-Tensors属性、Tensor的运算

PyTorch的基本概念

Tensor的基本概念

张量高于标量、向量、矩阵
标量说零维的张量,向量是一维的张量,矩阵是二维的张量

Tensor与机器学习的关系

image.png

Tensor的创建

函数功能
Tensor(*size)基础构造函数
Tensor(data)类似np.array
ones(*size)全1Tensor
zeros(*size)全0Tensor
eye(*size)对角线为1,其他为0
arange(s,e,step)从s到e,步长为step
linspace(s,e,steps)从s到e,均匀切分成steps份
rand/randn(*size)均匀/标准分布
normal(mean,std)/uniform_(from,to)正态分布/均匀分布
randperm(m)随机排列

实例
image.png
随机数 正态分布 标准分布
image.png
序列
image.png

Tensor的属性

  • 每一个Tensor有torch.dtype、torch.device、torch.layout三种属性
  • torch.device 标识了torch.Tensor对象在创建之后所存储在的设备名称
  • torch.layout表示torch.Tensor内存布局的对象
torch.tensor([1,2,3],dtype=torch.float32,device=torch.device('cpu'))

稀疏的张量

  • torch.sparse_coo_tensor
  • coo类型表示了非零元素的坐标形式
indices = torch.tensor([0,1,1],[2,0,2]])
values = torch.tensor([3,4,5],dtype=torch.float32)
x = torch.sparse_coo_tensor(i,v,[2,4])
dev = torch.device("cpu")
torch.tensor([2,2],device=dev)
torch.tensor([2,2],dtype=torch.float32,device=dev)

image.png
稀疏的张量

i=torch.tensor([[0,1,2],[0,1,2]])
v=torch.tensor([1,2,3])
torch.sparse_coo_tensor(i,v,(4,4))

image.png
转成稠密的张量

torch.sparse_coo_tensor(i,v,(4,4)).to_dense()

image.png

Tensor的算术运算

加法运算

c=a+b
c=torch.add(a,b)
a.add(b)
a.add_(b)#会修改a的值

image.png

减法运算

c=a-b
c=torch.sub(a,b)
a.sub(b)
a.sub_(b)#会修改a的值

image.png

乘法运算

  • 哈达玛积(element wise,对应元素相乘)
c=a*b
c=torch.mul(a,b)
a.mul(b)
a.mul_(b)

image.png

除法运算

c=a/b
c=torch.div(a,b)
a.div(b)
a.div_(b)

image.png

矩阵运算

  • 二维矩阵乘法运算操作包括torch.mm()、torch.matmul()、@
a=torch.ones(2,1)
b=torch.ones(1,2)
print(torch.mm(a,b))
print(torch.matmul(a,b))
print(a@b)
print(a.matmul(b))
print(a.mm(b))

image.png

  • 对于高维的Tensor(dim>2),定义其矩阵乘法仅在最后的两个维度上,要求前面的维度必须保持一致,就像矩阵的索引一样并且运算操作只有torch.matmul()
a=torch.ones(1,2,3,4)
b=torch.ones(1,2,4,3)
print(a.matmul(b))
print(torch.matmul(a,b))

image.png

幂运算

print(torch.pow(a,2))
print(a.pow(2))
print(a**2)
print(a.pow_(2))

image.png
e的n次方

print(torch.exp(a))
b=a.exp_()

image.png

开方运算

a.sqrt()
a.sqrt_()

image.png

对数

torch.log2(a)
torch.log10(a)
torch.log(a)
torch.log_(a)

image.png

Tensor的取整/取余运算

  • .floor()向下取整数
  • .ceil()向上取整数
  • .round()四舍五入
  • .trunc()裁剪,只取整数部分
  • .frac()只取小数部分
  • %取余

image.png

Tensor的比较运算

torch.eq(input,other, out=None) #按成员进行等式操作,相同返回True
torch.equal(tensor1,tensor2) #如果tensor1和tensor2有相同的size和elements,则为true
torch.ge(input, other, out=None) #input>= other
torch.gt(input, other, out=None) #input>other
torch.le(input, other, out=None) #input=<other
torch.lt(input, other, out=None) #input<other
torch.ne(input, other, out=None) #input != other 不等于

排序

torch.sort(input, dim=None, descending=False, out=None) 
#对目标input进行排序
torch.topk(input, k,dim=None, largest=True, sorted=Trueout=None)
#沿着指定维度返回最大k个数值及其索引值
torch.kthvalue(input, k, dim=None, out=None)
#沿着指定维度返回第k个最小值及其索引值

Tensor判定是否为finite/inf/nan

torch.isfinite(tensor)/torch.isinf(tensor)/torch.isnan(tensor)
返回一个标记元素是否为 finite/inf/nan 的mask 张量

Tensor的三角函数

  • torch.abs(input, out=None)
  • torch.acos(input, out=None)
  • torch.asin(input, out=None)
  • torch.atan(input, out=None)
  • torch.atan2(input, inpu2out=None)
  • torch.cos(input, out=None)
  • torch.cosh(input, out=None)
  • torch.sin(input, out=None)
  • torch.sinh(input, out=None)
  • torch.tan(input, out=None)
  • torch.tanh(input, out=None)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

029 命令行传递参数

1.循环输出args字符串数组 public class D001 {public static void main(String[] args) {for (String arg : args) {System.out.println(arg);}} } 2.找打这个类的路径&#xff0c;打开cmd cmd C:\Users\Admin\IdeaProjects\JavaSE学习之路\scanner\src\com\yxm\demo 3. 编译…

C++ 之LeetCode刷题记录(二十七)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 136. 只出现一次的数字 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现…

Oracle出现超出打开游标最大数的解决方法

当Oracle数据库中打开的游标数超过了数据库的最大游标数限制时&#xff0c;就会出现“超出打开游标最大数”的错误。 常见的解决方法有以下几种&#xff1a; 方法一&#xff1a;增加最大游标数量 首先&#xff0c;需要查看当前最大游标数限制&#xff1a; SHOW parameter o…

双链表模拟算法,详细注解

827. 双链表 - AcWing题库 实现一个双链表&#xff0c;双链表初始为空&#xff0c;支持 55 种操作&#xff1a; 在最左侧插入一个数&#xff1b;在最右侧插入一个数&#xff1b;将第 k 个插入的数删除&#xff1b;在第 k 个插入的数左侧插入一个数&#xff1b;在第 k 个插入的数…

【Web前端笔记06】CSS常用属性

目录 一、字体属性 1、color 字体颜色 2、font-size 字体大小&#xff08;默认16px) 3、font-weight 文本粗细 4、font-style 字体样式 5、font-family 指定一个元素的字体 二、背景属性 1、background-color 背景颜色 2、background-image: url("img/do.png"); 背景…

C语言——R/预处理详解

一、预定义符号 C语⾔设置了⼀些预定义符号&#xff0c;可以直接使⽤&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编译的时间 __STDC__ //如果编译器遵循ANSI C&a…

某站平台的签名算法分享

先charles抓包&#xff0c;api.xxxxxx.com域名的包 分析包 看到路径参数如下 appkey1d8b6e7d45233436&build5531000&channeldw056&mobi_appandroid&mode0&oid326052200&plat2&platformandroid&ps20&statistics%7B%22appId%22%3A1%2C%22p…

异步编程Completablefuture使用详解----进阶篇

JDK版本&#xff1a;jdk17 IDEA版本&#xff1a;IntelliJ IDEA 2022.1.3 文章目录 前言一、异步任务的交互1.1 applyToEither1.2 acceptEither1.3 runAfterEither 二、get() 和 join() 区别三、ParallelStream VS CompletableFuture3.1 使用串行流执行并统计总耗时3.2 使用并行…

前端JavaScript篇之map和Object的区别、map和weakMap的区别

目录 map和Object的区别map和weakMap的区别 map和Object的区别 Object是JavaScript的内置对象&#xff0c;用于存储键值对。Object的键必须是字符串或符号&#xff0c;值可以是任意类型。Map是ES6引入的新数据结构&#xff0c;用于存储键值对。Map的键可以是任意类型&#xff…

C++ 日期类的实现

目录 前言 日期类中的成员函数和成员变量 日期类中成员函数的详解和实现 1.天数前后的判断 2.天数加减的实现 3.前置 && 后置 4.计算天数差值 前言 日期类的实现将综合前面所学的&#xff08;类的6个默认成员函数&#xff09;&#xff0c;进一步理解和掌握类的…

算法刷题day04

目录 一、前缀和二、子矩阵的和三、激光炸弹四、K倍区间五、总结 一、前缀和 标签&#xff1a;前缀和 题目描述&#xff1a; 输入一个长度为 n 的整数序列。接下来再输入 m 个询问&#xff0c;每个询问输入一对 l,r。对于每个询问&#xff0c;输出原序列中从第 l 个数到第 r…

COX预测模型过程中,我踩过的那些雷

R语言做&#xff01;初学者先进来看看&#xff01;&#xff01;&#xff01; SCI冲 COX分析&#xff1a;做临床信息与预后相关的COX分析大致都会分为两个步骤&#xff0c;先做单因素COX回归分析&#xff0c;再根据P值挑选有意义的变量&#xff0c;最终纳入COX多因素回归模型中&…

20240202在WIN10下部署faster-whisper

20240202在WIN10下部署faster-whisper 2024/2/2 12:15 前提条件&#xff0c;可以通过技术手段上外网&#xff01;^_ 首先你要有一张NVIDIA的显卡&#xff0c;比如我用的PDD拼多多的二手GTX1080显卡。【并且极其可能是矿卡&#xff01;】800&#xffe5; 2、请正确安装好NVIDIA最…

SpringBoot实战项目第一天

环境搭建 后端部分需要准备&#xff1a; sql数据库 创建SpringBoot工程&#xff0c;引入对应的依赖(web\mybatis\mysql驱动) 配置文件application.yml中引入mybatis的配置信息 创建包结构&#xff0c;并准备实体类 完成今日开发后项目部分内容如下图示 用户注册于登录部分…

[BUUCTF]-PWN:mrctf2020_easy_equation解析

查看保护 再看ida 很明了&#xff0c;题目就是让我们用格式化字符串漏洞修改judge的值&#xff08;可以用python脚本进行计算&#xff0c;最终算出来得2&#xff09;使等式成立&#xff0c;然后getshell。 虽然操作比较简单&#xff0c;但我还是列出了几种方法 解法一&#x…

uni-app移动端图片预览组件 movable-area 、movable-view (支持缩放,拖动效果、替换部分代码图片可直接使用)

UniApp图片预览组件 利用uni-app官方<movable-area>、<movable-view>内置视图组件 配合 uView 组件的u-popup 弹框组件共同实现封装的图片预览组件&#xff0c;支持手指缩放、拖动效果&#xff0c;替换代码中部分图片后 可以直接使用。 效果图&#xff1a; 组件代码…

【数据结构与算法】——单链表的原理及C语言实现

数据结构与算法——链表原理及C语言实现 链表的原理链表的基本属性设计创建一个空链表链表的遍历&#xff08;显示数据&#xff09;释放链表内存空间 链表的基本操作设计&#xff08;增删改查&#xff09;链表插入节点链表删除节点链表查找节点增删改查测试程序 链表的复杂操作…

Vulnhub billu b0x

0x01 环境搭建 1. 从官方下载靶机环境&#xff0c;解压到本地&#xff0c;双击OVF文件直接导入到vmware虚拟机里面。2. 将虚拟机的网络适配器调成NAT模式&#xff0c;然后开机即可进行操作了。 0x02 主机发现 nmap -sn 192.168.2.0/24 成功获取靶机IP为192.168.2.129。 0x0…

本次安装Visual Studio 所用的安装程序不完整。请重新运行VisualStudio安装程序以解决此问题

今天点开VS的时候遇到了这个问题 因为昨天升级到一半电脑关机了&#xff0c;今天打开软件遇到如下错误&#xff0c; 解决办法很简单&#xff0c;找到安装目录进入Installer文件夹 我的目录在C:\Program Files (x86)\Microsoft Visual Studio\Installer 找到vs_installer.exe…

【python】python爱心代码

一、实现效果&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 二、准备工作 &#xff08;1)、导入必要的模块&#xff1a; 代码首先导入了需要使用的模块&#xff1a;requests、lxml和csv。 import requests from lxml import etree import csv 如果出现…