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

南京网站创建百度搜索推广方法

南京网站创建,百度搜索推广方法,河南省住房和城乡建设厅查询网站首页,手机网页小游戏pytorch小记(三十二):深度解析 PyTorch 的 torch.remainder:向下取整余数运算深度解析 PyTorch 的 torch.remainder:向下取整余数运算一、函数签名二、数学定义:向下取整除法三、与 torch.fmod 的区别四、经…

pytorch小记(三十二):深度解析 PyTorch 的 `torch.remainder`:向下取整余数运算

    • 深度解析 PyTorch 的 `torch.remainder`:向下取整余数运算
      • 一、函数签名
      • 二、数学定义:向下取整除法
      • 三、与 `torch.fmod` 的区别
      • 四、经典示例
      • 五、广播与张量示例
      • 六、应用场景
      • 七、小结


深度解析 PyTorch 的 torch.remainder:向下取整余数运算

在深度学习和科学计算中,经常需要对张量执行“取余”操作,将数值映射到某个固定范围内。与 Python 自身的 % 操作符不同,PyTorch 提供了更加明确的 符号约定 的两种取余函数:

  • torch.remainder(a, b):余数与除数同号或为零,基于向下取整
  • torch.fmod(a, b):余数与被除数同号或为零,基于截断取整

本文重点介绍 torch.remainder 的工作原理、数学定义、与 fmod 的区别以及丰富示例,帮助你在周期化、环绕索引、模运算等场景中选用正确的工具。


一、函数签名

torch.remainder(input, other, *, out=None) → Tensor
  • input (Tensor or scalar):被除数。
  • other (Tensor or scalar):除数,形状可与 input 相同或可广播。
  • out (可选):将结果写入到指定张量。

返回值形状与 input 相同,每个元素是对应的余数。


二、数学定义:向下取整除法

对标量 aaa(被除数)和 bbb(除数,b≠0b\neq0b=0),

remainder(a,b)=a−b×⌊ab⌋,\mathrm{remainder}(a,b) = a - b \times \left\lfloor \frac{a}{b} \right\rfloor, remainder(a,b)=ab×ba,

其中 ⌊x⌋\lfloor x\rfloorx 表示向下取整(不大于 xxx 的最大整数)。

  • b>0b>0b>0,余数 r∈[0,b)r\in[0,b)r[0,b)
  • b<0b<0b<0,余数 r∈(b,0]r\in(b,0]r(b,0]

三、与 torch.fmod 的区别

运算符定义余数符号归属
remainder(a,b)向下取整:a−b⌊a/b⌋a - b\lfloor a/b\rflooraba/b除数 同号或为 0
fmod(a,b)截断取整:a−btrunc(a/b)a - b\mathrm{trunc}(a/b)abtrunc(a/b)被除数 同号或为 0

示例(a=−3,b=2a=-3, b=2a=3,b=2):

  • torch.remainder: −3−2⌊−1.5⌋=−3−2×(−2)=1-3 - 2\lfloor -1.5\rfloor = -3 - 2\times(-2) = 1321.5=32×(2)=1
  • torch.fmod: −3−2×trunc(−1.5)=−3−2×(−1)=−1-3 - 2\times\mathrm{trunc}(-1.5) = -3 - 2\times(-1) = -132×trunc(1.5)=32×(1)=1

四、经典示例

import torch# 标量示例
print(torch.remainder(torch.tensor( 7), torch.tensor( 3)))  # 1
print(torch.remainder(torch.tensor(-7), torch.tensor( 3)))  # 2
print(torch.remainder(torch.tensor( 7), torch.tensor(-3)))  # -2
print(torch.remainder(torch.tensor(-7), torch.tensor(-3)))  # -1# 对比 fmod
print(torch.fmod(torch.tensor(-7), torch.tensor( 3)))  # -1
print(torch.fmod(torch.tensor(-7), torch.tensor(-3)))  # -1

结果:

1
2
-2
-1
-1
-1

五、广播与张量示例

import torchx = torch.tensor([-2.7, -1.2, 0.5, 1.8, 3.3])
b = 1.0
print(torch.remainder(x, b))
# => tensor([0.3000, 0.8000, 0.5000, 0.8000, 0.3000])b2 = torch.tensor([2.0, -2.0, 2.0, -2.0, 2.0])
print(torch.remainder(x, b2))
# => tensor([ 1.3000, -1.2000,  0.5000, -0.2000,  1.3000])

手算过程示例:

  • −2.7mod1.0=−2.7−1×⌊−2.7⌋=−2.7−1×(−3)=0.3-2.7 \bmod 1.0 = -2.7 - 1\times\lfloor-2.7\rfloor = -2.7 - 1\times(-3) = 0.32.7mod1.0=2.71×2.7=2.71×(3)=0.3.
  • −2.7mod2.0=−2.7−2×⌊−1.35⌋=−2.7−2×(−2)=1.3-2.7 \bmod 2.0 = -2.7 - 2\times\lfloor-1.35\rfloor = -2.7 - 2\times(-2) = 1.32.7mod2.0=2.72×1.35=2.72×(2)=1.3.

六、应用场景

  1. 周期化数据:将角度或索引循环到固定范围,如 [0,2π)[0,2\pi)[0,2π)
  2. 环绕索引:在循环队列、环形缓冲区或图像平铺中计算有效索引。
  3. 同余运算:数学模型、密码学和信号处理中的模运算实现。

七、小结

  • torch.remainder(a,b) 基于向下取整,保证余数与除数同号或为零,适合需要“正向环绕”的场景。
  • torch.fmod(截断取整、余数符号随被除数)的区别在于符号归属
  • 支持标量、张量与广播,语义清晰,易于处理周期性和模运算。
http://www.dtcms.com/wzjs/26414.html

相关文章:

  • 视觉设计专业 学校排名seo 培训教程
  • 哪个网站可以做创意短视频天津放心站内优化seo
  • 高端营销型网站建设站长推荐黄色
  • 专做定制网站建设江西seo推广
  • 做图片视频的网站有哪些磁力狗在线
  • 智慧旅游网站建设方案ppt模板辽宁好的百度seo公司
  • 什么网站可以教做面包网页制作三大软件
  • 懒懒淘客怎么做自己的网站网站seo平台
  • 济南市城乡建设委员会网站怎样做好网络营销推广
  • 给企业做网站的公司重庆森林经典台词截图
  • 域名注册查询阿里云seo推广一个月见效
  • 福建参观禁毒展览馆的网站建设长沙做网站推广
  • 哪个网站生鲜配送做的好网络营销策划方案格式
  • 站点建设网站企业营销策划实训报告
  • wordpress空间免费下载武汉seo网站排名优化
  • 乐山网站开发培训心得体会模板
  • 如何说服企业做网站做企业网站建设公司哪家好
  • 平台设计网站公司电话号码网络培训平台
  • 2017淘宝客网站怎么做广告联盟广告点击一次多少钱
  • 优秀平面设计作品网站seo草根博客
  • 网站需要多少服务器制作网站需要什么软件
  • 中外商贸做网站好在哪一个新手怎么去运营淘宝店铺
  • 主办单位性质与网站名称不符seo网站关键词排名提升
  • 校园网站的作用网页百度网盘
  • 谷歌网站模板想要导航推广网页怎么做
  • 北京如何做网站百度知道网页版地址
  • 深圳苏州企业网站建设服务公司网站推广联盟
  • 移动做绩效的网站优化工具箱
  • 企业网站建设合同书盖章页小红书指数
  • 做网页的网站叫什么怎样免费推广自己的网站