PyTorch学习笔记之基础函数篇(十三)

文章目录

    • 7.7 torch.ceil() 函数
    • 7.8 torch.floor() 函数
    • 7.9 torch.clamp() 函数
    • 7.10 torch.neg() 函数
    • 7.11 torch.reciprocal() 函数
    • 7.12 torch.rsqrt() 函数
    • 7.13 torch.sqrt() 函数

7.7 torch.ceil() 函数

在PyTorch中,torch.ceil 函数用于对张量(tensor)中的每个元素向上取整,即对每个元素找到不小于它的最小整数。这个函数对于处理需要向上取整的数学运算或者对于需要将数据调整到特定范围的场景非常有用。

函数签名如下:

torch.ceil(input, *, out=None) → Tensor

参数解释:

  • input (Tensor): 需要向上取整的输入张量。
  • out (Tensor, optional): 输出张量。如果提供,则结果将写入这个张量中,并且函数将返回这个张量。

以下是一个使用 torch.ceil 的例子:

import torch# 创建一个张量
x = torch.tensor([1.2, 2.7, -0.3, 3.8, -4.5])# 对张量中的每个元素向上取整
y = torch.ceil(x)# 打印结果
print(y)

输出将会是:

tensor([ 2.,  3., -0.,  4., -4.])

在这个例子中,torch.ceil 函数将张量 x 中的每个元素向上取整,并将结果存储在 y 中。可以看到,正数元素都被向上取整到了最近的整数,而负数元素也被向上取整到了不小于它们的最小整数(即向零方向取整)。

在神经网络和深度学习中,torch.ceil 函数可能不常用作激活函数,但它可以用于数据的预处理、后处理或者在某些特定的数学运算中。

7.8 torch.floor() 函数

在PyTorch中,torch.floor 函数用于对张量中的每个元素向下取整,即对每个元素找到不大于它的最大整数。这个函数在需要执行向下取整操作的场景中非常有用,例如,在图像处理、数据预处理或某些数学运算中。

函数签名如下:

torch.floor(input, *, out=None) → Tensor

参数解释:

  • input (Tensor): 需要向下取整的输入张量。
  • out (Tensor, optional): 输出张量。如果提供,则结果将写入这个张量中,并且函数将返回这个张量。

下面是一个使用 torch.floor 的例子:

import torch# 创建一个张量
x = torch.tensor([1.2, 2.7, -0.3, 3.8, -4.5])# 对张量中的每个元素向下取整
y = torch.floor(x)# 打印结果
print(y)

输出将会是:

tensor([1., 2., -1., 3., -5.])

在这个例子中,torch.floor 函数将张量 x 中的每个元素向下取整,并将结果存储在 y 中。可以看到,正数元素都被向下取整到了最近的整数,而负数元素也被向下取整到了不大于它们的最大整数。

在深度学习和神经网络中,torch.floor 函数可能不常用作激活函数,但在数据预处理、后处理或某些特定的数学运算中可能会用到。

7.9 torch.clamp() 函数

在PyTorch中,torch.clamp 函数用于将张量(tensor)中的元素限制在一个指定的范围内。换句话说,它可以将张量中的每个元素限制在一个最小值和最大值之间。如果张量中的某个元素小于最小值,它将被设置为最小值;如果大于最大值,它将被设置为最大值;如果介于两者之间,则保持不变。

函数签名如下:

torch.clamp(input, min, max, out=None) → Tensor

参数解释:

  • input (Tensor): 需要进行限制的输入张量。
  • min (Number): 允许的最小值。
  • max (Number): 允许的最大值。
  • out (Tensor, optional): 输出张量。如果提供,则结果将写入这个张量中,并且函数将返回这个张量。

torch.clamp 是一种非常有用的函数,可以在数据预处理、后处理或神经网络中的任何需要限制数据范围的地方使用。

下面是一个使用 torch.clamp 的例子:

import torch# 创建一个张量
x = torch.tensor([-1.0, 0.5, 2.0, 3.5, -4.0])# 将张量中的元素限制在 [0, 2] 范围内
y = torch.clamp(x, min=0, max=2)# 打印结果
print(y)

输出将会是:

tensor([0., 0.5000, 2.0000, 2.0000, 0.0000])

在这个例子中,torch.clamp 函数将张量 x 中的每个元素限制在了 [0, 2] 的范围内。所有小于 0 的元素都被设置为了 0,所有大于 2 的元素都被设置为了 2,而介于 0 和 2 之间的元素保持不变。

7.10 torch.neg() 函数

在PyTorch中,torch.neg 函数用于计算张量(tensor)中每个元素的相反数(即负数)1。

函数签名如下:

torch.neg(input, *, out=None) → Tensor

参数解释:

  • input (Tensor):需要进行相反数计算的输入张量。
  • out (Tensor, optional):输出张量。如果提供,则结果将写入这个张量中,并且函数将返回这个张量。

torch.neg 函数会返回一个新的张量,其中包含了输入张量中每个元素的相反数。

以下是一个使用 torch.neg 的例子:

import torch# 创建一个张量
x = torch.tensor([1.0, -2.0, 3.0])# 计算张量中每个元素的相反数
y = torch.neg(x)# 打印结果
print(y)

输出将会是:

tensor([-1.0000,  2.0000, -3.0000])

在这个例子中,torch.neg 函数计算了张量 x 中每个元素的相反数,并将结果存储在 y 中。可以看到,y 中的每个元素都是 x 中对应元素的相反数

7.11 torch.reciprocal() 函数

在PyTorch中,torch.reciprocal 函数用于计算张量(tensor)中每个元素的倒数。

函数签名如下:

torch.reciprocal(input, *, out=None) → Tensor

参数解释:

  • input (Tensor): 需要计算倒数的输入张量。
  • out (Tensor, optional): 输出张量。如果提供,则结果将写入这个张量中,并且函数将返回这个张量。

torch.reciprocal 函数会返回一个新的张量,其中包含了输入张量中每个元素的倒数。与NumPy的倒数函数不同,torch.reciprocal 支持整数输入。如果输入张量中包含整数,那么它们的倒数将被自动提升为默认标量类型(通常是浮点数)。

以下是一个使用 torch.reciprocal 的例子:

import torch# 创建一个张量
x = torch.tensor([1.0, 2.0, 3.0])# 计算张量中每个元素的倒数
y = torch.reciprocal(x)# 打印结果
print(y)

输出将会是:

tensor([1., 0.5000, 0.3333])

在这个例子中,torch.reciprocal 函数计算了张量 x 中每个元素的倒数,并将结果存储在 y 中。可以看到,y 中的每个元素都是 x 中对应元素的倒数。

7.12 torch.rsqrt() 函数

在PyTorch中,torch.rsqrt 函数用于计算张量(tensor)中每个元素的平方根的倒数(即1除以平方根)。这对于某些数学运算和机器学习算法(如梯度下降的优化步骤)中可能需要计算平方根倒数的情况非常有用。

函数签名如下:

torch.rsqrt(input, *, out=None) → Tensor

参数解释:

  • input (Tensor): 需要计算平方根倒数的输入张量。
  • out (Tensor, optional): 输出张量。如果提供,则结果将写入这个张量中,并且函数将返回这个张量。

torch.rsqrt 会返回一个新的张量,其中包含了输入张量中每个元素的平方根倒数。

下面是一个使用 torch.rsqrt 的例子:

import torch# 创建一个张量
x = torch.tensor([1.0, 4.0, 9.0])# 计算张量中每个元素的平方根倒数
y = torch.rsqrt(x)# 打印结果
print(y)

输出将会是:

tensor([1.0000, 0.5000, 0.3333])

在这个例子中,torch.rsqrt 函数计算了张量 x 中每个元素的平方根倒数,并将结果存储在 y 中。可以看到,y 中的每个元素都是 x 中对应元素的平方根倒数。

注意:对于负数,torch.rsqrt 会返回 nan(不是一个数字),因为负数没有实数平方根。因此,在使用此函数之前,确保输入张量不包含负数,或者对负数进行适当处理。

7.13 torch.sqrt() 函数

在PyTorch中,torch.sqrt 函数用于计算张量(tensor)中每个元素的平方根。

函数签名如下:

torch.sqrt(input, *, out=None) → Tensor

参数解释:

  • input (Tensor):需要进行平方根计算的输入张量。
  • out (Tensor, optional):输出张量。如果提供,则结果将写入这个张量中,并且函数将返回这个张量。

torch.sqrt 函数会返回一个新的张量,其中包含了输入张量中每个元素的平方根。如果输入张量中包含负数元素,那么函数将返回NaN(不是一个数字)值,因为负数没有实数平方根。

以下是一个使用 torch.sqrt 的例子:

import torch# 创建一个张量
x = torch.tensor([4.0, 9.0, 16.0])# 计算张量中每个元素的平方根
y = torch.sqrt(x)# 打印结果
print(y)

输出将会是:

tensor([2., 3., 4.])

在这个例子中,torch.sqrt 函数计算了张量 x 中每个元素的平方根,并将结果存储在 y 中。可以看到,y 中的每个元素都是 x 中对应元素的平方根。

注意:torch.sqrt 只支持非负数的平方根计算。如果输入包含负数,你需要先处理这些负数(例如,通过取绝对值或应用其他适当的转换),然后再调用 torch.sqrt。

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

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

相关文章

面试算法-50-二叉树的最大深度

题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 解 class Solution {public int maxDepth(TreeNo…

《算法设计与分析第二版》100行 C语言实现 广度度优先算法 BFS——最短距离

抄录自课本P157页。 #include <stdio.h> #define MAXQ 100 // 队列大小 #define MAxN 10 // 最大迷宫大小 int n8; // 迷宫大小 char Maze [MAxN][MAxN] {{O,X,X,X,X,X,X,X,},{O,O,O,X,O,X,O,X,},{X,X,O,O,O,X,O,X,},{X,X,O,X,O,X,X,X,},…

Git ignore: 忽略与清除

一、vs、vc #.svn .clang-format .gitignore Src/[Dd]ebug/ Src/[Rr]elease/ .vs .vs/* ​ # other file *.txt *.log *LOG/ *log/ ​ # Compiled Object files *.slo *.lo #*.o *.obj ​ # Precompiled Headers *.gch *.pch ​ # Compiled Dynamic libraries #*.so *.dylib #…

LightDB24.1 Sequence支持设置minvalue小于INT64_MIN

背景介绍 Oracle数据库支持设置sequence的minvalue为-1000000000000000000000000000&#xff0c;在用户迁移到LightDB时&#xff0c;sequence设置minvalue为-1000000000000000000000000000会报错。为了兼容Oracle数据库的使用习惯&#xff0c;在LightDB24.1版本中&#xff0c;…

HDFS概述及常用shell操作

HDFS 一、HDFS概述1.1 HDFS适用场景1.2 HDFS优缺点1.3 HDFS文件块大小 二、HDFS的shell操作2.1 上传2.2 下载2.3 HDFS直接操作 一、HDFS概述 1.1 HDFS适用场景 因为HDFS里所有的文件都是维护在磁盘里的 在磁盘中对文件的历史内容进行修改 效率极其低(但是追加可以) 1.2 HDF…

Linux电源管理——系统Suspend/Resume流程

本篇文章主要是自己的学习笔记&#xff0c;主要内容是分析linux系统中设备的Suspend和Resume流程&#xff0c;用到的内核版本为 linux-4.14。 目录 1、Linux 内核的Suspend方法 2、__device_suspend 函数 3、pm_op 函数 4、suspend_enter 函数 5、resume流程 1、Linux 内…

dockerfile更改docker镜像源

方法一&#xff1a; ## 更换源 RUN sed -i s/deb.debian.org//mirrors.aliyun.com/g /etc/apt/sources.list \ && apt-get update 方法二&#xff1a; RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/…

js中副作用的消除还解决了并行计算带来的竞争问题,具体是如何解决的

在JavaScript中&#xff0c;副作用是指对外部环境产生的可观察的变化&#xff0c;例如修改全局变量、修改DOM元素等。副作用的存在可能导致代码的可维护性和可测试性下降&#xff0c;并且在并行计算中可能引发竞争问题。 不纯的函数有可能访问同一块资源&#xff0c;如果先后调…

走近 AI Infra 架构师:在高速飞驰的大模型“赛车”上“换轮子”的人

如果把大模型训练比作 F1 比赛&#xff0c;长凡所在的团队就是造车的人&#xff0c;也是在比赛现场给赛车换轮子的人。1% 的训练提速&#xff0c;或者几秒之差的故障恢复时间&#xff0c;累积起来&#xff0c;都能影响到几百万的成本。长凡说&#xff1a;“大模型起来的时候&am…

算法详解——选择排序和冒泡排序

一、选择排序 选择排序算法的执行过程是这样的&#xff1a;首先&#xff0c;算法遍历整个列表以确定最小的元素&#xff0c;接着&#xff0c;这个最小的元素被置换到列表的开头&#xff0c;确保它被放置在其应有的有序位置上。接下来&#xff0c;从列表的第二个元素开始&#x…

事件高级、

文章目录 1.注册事件&#xff08;绑定事件&#xff09;addEventListener 事件监听方式attachEvent 事件监听方式、兼容性解决方案 * 2.删除事件&#xff08;解绑事件&#xff09;删除事件的方式删除事件兼容性解决方案 * 3.DOM事件流4.事件对象使用语法兼容性方案*常见属性和方…

边缘计算+WEB端应用融合:AI行为识别智能监控系统搭建指南 -- 边缘设备图像识别及部署(二)

专栏目录 边缘计算WEB端应用融合&#xff1a;AI行为识别智能监控系统搭建指南 – 整体介绍&#xff08;一&#xff09; 边缘计算WEB端应用融合&#xff1a;AI行为识别智能监控系统搭建指南 -- 边缘图像识别及部署&#xff08;二&#xff09; 前言边缘图像识别与推流整体思路原始…

Allegro许可类型

随着科技的飞速发展&#xff0c;数字化转型已成为企业提升竞争力的必经之路。在这个过程中&#xff0c;软件许可作为企业合规运营的关键环节&#xff0c;发挥着至关重要的作用。Allegro作为业界领先的软件解决方案提供商&#xff0c;提供了一系列丰富多样的许可类型&#xff0c…

vue+elementUI实现右击指定表格列的单元格显示选择框

一、template代码如下&#xff1a; 1、表格单元格中添加的代码&#xff1a; <div v-if"item.label 铁心级号" contextmenu.prevent"openRightMenu($event, item, scope.$index)" style"height: 38px; line-height: 38px;"><span styl…

海康威视添加新摄像头到原建的网络监控平台中

一、适用场景 1、企业已经存在一套海康威视的监控网络系统&#xff1b; 2、根据业务的需求&#xff0c;要新增加一些摄像头&#xff1b; 3、原施工方忙碌&#xff0c;为新增加的摄像头施工成本较高&#xff1b; 4、新增加海康威视的摄像头视频监控&#xff0c;保存在原建的监控…

构建强大的API:Django中的REST框架探究与实践【第146篇—Django】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 构建强大的API&#xff1a;Django中的REST框架探究与实践 在当今的Web开发中&#xff0c;构…

低代码:软件开发的性价比之王

随着技术的飞速发展&#xff0c;软件开发领域正经历着前所未有的变革。在这场变革中&#xff0c;低代码平台凭借其高效、便捷的特性&#xff0c;逐渐崭露头角&#xff0c;成为众多企业和开发者的首选。本文将探讨低代码平台为何能被誉为“性价比之王”&#xff0c;并分析其在软…

Apache SeaTunnel MongoDB CDC 使用指南

随着数据驱动决策的重要性日益凸显&#xff0c;实时数据处理成为企业竞争力的关键。SeaTunnel MongoDB CDC(Change Data Capture) 源连接器的推出&#xff0c;为开发者提供了一个高效、灵活的工具&#xff0c;以实现对 MongoDB 数据库变更的实时捕获和处理。 本文将深入探讨该连…

Jackson 2.x 系列【1】概述

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-seata-demo 文章目录 1. 前言2. 什么是 JSON3. 常用 Java JSON 库4. Jackson4.1 简介4.2 套件4.3 模块4.…

prompt开发生命周期

1.定义任务场景和成功标准 任务场景可分为简单任务&#xff1a;实体抽取、qa等 复杂任务&#xff1a;代码生成、创意写作等 在定义任务后&#xff0c;就要定义模型实现该任务的成功标准&#xff1a; 模型表现和准确率&#xff1b;延迟&#xff1b;价格。 2.开发测试用例 多…