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

南充做网站的公司网络架构师证书

南充做网站的公司,网络架构师证书,网站建设代码出现乱码,公司网站备案申请torch.cumprod 是 PyTorch 中用于 计算张量沿指定维度的累积乘积(cumulative product) 的函数。 1、函数原型 torch.cumprod(input, dim, *, dtypeNone, outNone) → Tensor参数说明: 参数说明input输入张量dim累积乘积的维度dtype可选&…

torch.cumprod 是 PyTorch 中用于 计算张量沿指定维度的累积乘积(cumulative product) 的函数。


1、函数原型

torch.cumprod(input, dim, *, dtype=None, out=None) → Tensor

参数说明:

参数说明
input输入张量
dim累积乘积的维度
dtype可选:指定输出类型(默认与输入类型相同)
out可选:输出张量(用于 inplace)

2、功能说明

对于指定维度 dim,返回一个张量,其中每个元素是该位置及之前所有元素的乘积。


3、示例代码

示例 1:一维张量

import torchx = torch.tensor([1, 2, 3, 4], dtype=torch.float32)
y = torch.cumprod(x, dim=0)
print("输入:", x)
print("累积乘积:", y)

输出:

输入: tensor([1., 2., 3., 4.])
累积乘积: tensor([ 1.,  2.,  6., 24.])

示例 2:二维张量,沿 dim=0(列)

x = torch.tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]], dtype=torch.float32)y = torch.cumprod(x, dim=0)
print(y)

输出:

tensor([[  1.,   2.,   3.],[  4.,  10.,  18.],[ 28.,  80., 162.]])

计算过程解释(逐列):

  • 第 1 列: [1, 4, 7][1, 1×4=4, 4×7=28]
  • 第 2 列: [2, 5, 8][2, 2×5=10, 10×8=80]
  • 第 3 列: [3, 6, 9][3, 3×6=18, 18×9=162]

示例 3:使用 dtype 强制类型

x = torch.tensor([1, 2, 3], dtype=torch.int32)
y = torch.cumprod(x, dim=0, dtype=torch.float32)
print(y)

输出:

tensor([1., 2., 6.])

4、综合应用示例

下面是一个完整的示例,展示了 torch.cumprod 在神经网络训练中如何用于 前向传播中累积权重乘积的计算。这种用法常见于:

  • 路径权重乘积模型(Path Weight Product Models)
  • 自定义神经网络结构中累积乘积(如神经ODE、概率模型)

4.1、示例背景

假设我们有一个网络结构:每一层只有一个权重因子,我们要计算所有权重乘积作为 forward 输出的一部分。


4.2、示例代码:累积权重乘积的自定义网络

import torch
import torch.nn as nnclass CumprodNet(nn.Module):def __init__(self, num_layers):super(CumprodNet, self).__init__()# 每层一个标量权重参数,初始化为 0.9 左右self.weights = nn.Parameter(torch.rand(num_layers) * 0.2 + 0.9)def forward(self, x):# 假设 x 是输入标量或批量张量# 计算权重的累积乘积path_weights = torch.cumprod(self.weights, dim=0)# 将每层的路径加权输出加总outputs = torch.stack([x * pw for pw in path_weights], dim=0)return outputs.sum(dim=0), path_weights  # 返回结果和路径乘积向量# 初始化模型
model = CumprodNet(num_layers=4)# 输入张量(可批量)
x = torch.tensor([1.0], requires_grad=True)# 前向传播
output, path_weights = model(x)# 打印结果
print("权重参数:", model.weights.data)
print("累积乘积:", path_weights)
print("最终输出:", output)# 反向传播
output.backward()
print("输入梯度:", x.grad)

4.3、输出说明(示例)

假设 self.weights = [0.91, 0.95, 1.01, 1.05]

cumprod 将计算:

[0.91,0.91 × 0.95 = 0.8645,0.8645 × 1.01 = 0.8731,0.8731 × 1.05 ≈ 0.9167]

然后每个都乘上输入 x,最后加总作为最终输出。


4.4、应用场景

  1. 路径加权神经网络
  2. 可学习的指数衰减控制
  3. 自定义 RNN、深层残差控制器中的动态路径参数建模
  4. 强化学习中的路径概率分布建模(Policy Gradient)

5、注意事项

  • cumprod 会在指定维度上,按顺序相乘;
  • 输入中如果有 0,后续的所有乘积都会变为 0
  • 常用于概率连乘、对数空间建模前的准备步骤(比如前向链式法则)。

6、与相关函数对比

函数功能
torch.cumsum累加和
torch.cumprod累乘积
torch.prod所有元素乘积(非逐步)
torch.cummax / cummin累积最大/最小值
http://www.dtcms.com/a/415339.html

相关文章:

  • Appinventor笔记5-列表块
  • 天津做网站印标帝国手机网站怎么做
  • 单位网站建设有机房吗在线网站模板
  • 手写MyBatis第79弹:MyBatis二级缓存事务一致性:解决脏读与缓存一致性难题
  • TENGJUN-4极反向沉板耳机插座:JA05-BPD011-A;技术解析
  • Raft 算法深度解析:角色、选举、日志复制与分区处理优化
  • Linux进程(3)
  • 大型建设网站自己动手制作网站
  • 濮阳做公司网站青羊区城乡建设网站
  • 版式设计模板网站wordpress 获取文章
  • 操作系统页面置换算法FIFO——Belady异常与一个简单案例
  • 网站开发定制方案企业网店推广运营策略
  • 杭州设计企业网站高端公司游戏网站开发试验报告
  • React Native:使用vite创建react项目并熟悉react语法
  • LazyLLM 学习
  • 服饰 公司 网站建设新会网页制作公司
  • 做网站开发的营业执照电商货源网站大全
  • Redis 主从同步:原理、配置与实战优化
  • 什么是网站反链企业建设网站风险
  • 毕业设计开题报告网站开发深圳哪家网站设计比较好
  • 常用的Python项目管理工具
  • 网站建设设计技术方案模板linux 下启动 wordpress
  • 温建设文件发布在哪个网站做网站需要ui设计吗
  • 数字孪生背后的通信协议:MQTT、OPC UA选型指南
  • Nest 身份鉴权与权限控制
  • C#系统日志
  • CMakeLists.txt语法(三)
  • 简单flash个人网站山东省建设教育集团网站首页
  • windows多显示器,独立的虚拟桌面
  • 国外的app设计网站企管宝官网