pyro.optim pyro ppl 概率编程 优化器 pytorch

2024-09-05 04:44

本文主要是介绍pyro.optim pyro ppl 概率编程 优化器 pytorch,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最佳化¶

该模块pyro.optim为Pyro中的优化提供支持。特别是,它提供了焦光性,用于包装PyTorch优化器并管理动态生成参数的优化器(参见教程SVI第一部分供讨论)。任何自定义优化算法也可以在这里找到。

烟火优化器¶

is _调度程序(【计算机】优化程序)→ 弯曲件[来源]¶

帮助器方法,用于确定PyTorch对象是PyTorch优化器(返回false)还是包装在LRScheduler中的优化器ReduceLROnPlateau或子类_LRScheduler(返回真)。

班级焦光性(optim _构造函数: 联盟[请求即付的, torch . optim . optimizer . optimizer, 类型[torch . optim . optimizer . optimizer]]optim_args: 联盟[词典, 请求即付的[[...], 词典]]剪辑_参数: 可选择的[联盟[词典, 请求即付的[[...], 词典]]] = 没有人)[来源]¶

碱基:object

torch.optim.Optimizer对象的包装器,有助于管理动态生成的参数。

因素

  • optim _构造函数–torch . optim . optimizer

  • optim_args–优化器的学习参数字典或返回此类字典的可调用程序

  • 剪辑_参数–clip _ norm和/或clip_value参数的字典或返回此类字典的callable

__呼叫_ _(参数: 联盟[目录, 值视图]*一个参数名**夸尔斯)→ 没有人[来源]¶

因素

参数 (可重复的字符串)–参数列表

对params中的每个参数执行优化步骤。如果一个给定的参数以前从未出现过,为它初始化一个优化器。

获取状态()→ 词典[来源]¶

以带有键值对的字典的形式获得与所有优化器相关的状态(参数名,优化状态字典)

设置状态(状态_字典: 词典)→ 没有人[来源]¶

使用从以前对get_state()的调用中获得的状态,设置与所有优化器关联的状态

救援(文件名: 潜艇用热中子反应堆(submarine thermal reactor的缩写))→ 没有人[来源]¶

因素

文件名 (潜艇用热中子反应堆(submarine thermal reactor的缩写))–要保存到的文件名

将优化程序状态保存到磁盘

负荷(文件名: 潜艇用热中子反应堆(submarine thermal reactor的缩写)地图_位置=没有人)→ 没有人[来源]¶

因素

  • 文件名 (潜艇用热中子反应堆(submarine thermal reactor的缩写))–从中加载的文件名

  • 地图_位置 (功能手电筒.设备线或者格言)–torch . load()map _ location参数

从磁盘加载优化程序状态

AdagradRMSProp(optim_args: 词典)→ 派若姆,派若姆,派若姆[来源]¶

包装pyro.optim.adagrad_rmsprop.AdagradRMSProp随着PyroOptim.

克利佩达姆(optim_args: 词典)→ 派若姆,派若姆,派若姆[来源]¶

包装pyro.optim.clipped_adam.ClippedAdam随着PyroOptim.

DCTAdam(optim_args: 词典)→ 派若姆,派若姆,派若姆[来源]¶

包装pyro.optim.dct_adam.DCTAdam随着PyroOptim.

班级热解时间表(调度程序_构造函数optim_args: 词典剪辑_参数: 可选择的[词典] = 没有人)[来源]¶

碱基:pyro.optim.optim.PyroOptim

的包装纸lr_scheduler对象,这些对象为动态生成的参数调整学习率。

因素

  • 调度程序_构造函数–答lr_scheduler

  • optim_args–优化器的学习参数字典或返回此类字典的可调用程序。必须包含具有pytorch优化器值的键“优化器”

  • 剪辑_参数–clip _ norm和/或clip_value参数的字典或返回此类字典的callable。

示例:

optimizer = torch.optim.SGD
scheduler = pyro.optim.ExponentialLR({'optimizer': optimizer, 'optim_args': {'lr': 0.01}, 'gamma': 0.1})
svi = SVI(model, guide, scheduler, loss=TraceGraph_ELBO())
for i in range(epochs):for minibatch in DataLoader(dataset, batch_size):svi.step(minibatch)scheduler.step()

__呼叫_ _(参数: 联盟[目录, 值视图]*一个参数名**夸尔斯)→ 没有人[来源]¶

步骤(*一个参数名**夸尔斯)→ 没有人[来源]¶

采用与PyTorch调度程序相同的参数(例如可选的lossReduceLROnPlateau)

班级AdagradRMSProp(参数希腊语字母的第七字: 漂浮物 = 1.0三角洲: 漂浮物 = 1e-16t: 漂浮物 = 0.1)[来源]¶

碱基:torch.optim.optimizer.Optimizer

实现了Adagrad算法和RMSProp的混搭。关于精确的更新公式,参见参考文献[1]中的公式10和11。

参考文献:[1]《自动微分变分推理》,Alp Kucukelbir,Dustin Tran,Rajesh Ranganath,Andrew Gelman,David M. Blei URL:https://arxiv.org/abs/1603.00788[2]“讲座6.5 RmsProp:将梯度除以其最近大小的移动平均值”,Tieleman,t .和Hinton,g .,COURSERA:用于机器学习的神经网络。[3]“在线学习和随机优化的自适应次梯度方法”,杜奇,约翰,哈赞,E和辛格,y

参数:

因素

  • 参数–要优化的可迭代参数或定义参数组的字典

  • 希腊语字母的第七字 (漂浮物)–设置步长比例(可选;默认值:1.0)

  • t (漂浮物)–t,可选):动量参数(可选;默认值:0.1)

  • 三角洲 (漂浮物)–调制控制步长缩放方式的指数(可选:默认值:1e-16)

共享内存()→ 没有人[来源]¶

步骤(关闭: 可选择的[请求即付的] = 没有人)→ 可选择的[任何的][来源]¶

执行单个优化步骤。

因素

关闭–重新评估模型并返回损失的(可选)关闭。

班级克利佩达姆(参数实验室反应堆: 漂浮物 = 0.001贝塔: 元组 = (0.9, 0.999)蓄电池: 漂浮物 = 1e-08重量衰减=0剪辑_规范: 漂浮物 = 10.0亲属活供体(living related donor): 漂浮物 = 1.0)[来源]¶

碱基:torch.optim.optimizer.Optimizer

因素

  • 参数–要优化的可迭代参数或定义参数组的字典

  • 实验室反应堆–学习率(默认值:1e-3)

  • 贝塔 (元组)–用于计算梯度及其平方的移动平均值的系数(默认值:(0.9,0.999))

  • 蓄电池–添加到分母中以提高数值稳定性的术语(默认值:1e-8)

  • 重量衰减–重量衰减(L2惩罚)(默认值:0)

  • 剪辑_规范–渐变裁剪到的范数的大小(默认值:10.0)

  • 亲属活供体(living related donor)–学习率衰减的速率(默认值:1.0)

对torch.optim.Adam中实现的Adam算法进行了小的修改,以包括梯度裁剪和学习率衰减。

参考

随机优化的一种方法、迪德里克·金马、吉米·巴https://arxiv.org/abs/1412.6980

步骤(关闭: 可选择的[请求即付的] = 没有人)→ 可选择的[任何的][来源]¶

因素

关闭–重新评估模型并返回损失的可选关闭。

执行单个优化步骤。

班级HorovodOptimizer(焦光学: 派若姆,派若姆,派若姆**霍罗沃德夸尔斯)[来源]¶

碱基:pyro.optim.optim.PyroOptim

的分布式包装PyroOptim优化器。

该类包装了一个PyroOptim对象类似的方式horovod.torch.DistributedOptimizer()包装atorch.optim.Optimizer.

注意

这需要horovod.torch待安装,例如通过pip install pyro[horovod]。详情请见https://horovod.readthedocs.io/en/stable/install.html

参数

Pyro优化器实例。

因素

* *霍罗沃德_夸尔格斯–传递给的额外参数horovod.torch.DistributedOptimizer().

__呼叫_ _(参数: 联盟[目录, 值视图]*一个参数名**夸尔斯)→ 没有人[来源]¶

PyTorch优化器¶

阿达德尔塔(optim_args剪辑_参数=没有人

包装torch.optim.Adadelta随着PyroOptim.

阿达格拉德(optim_args剪辑_参数=没有人

包装torch.optim.Adagrad随着PyroOptim.

圣经》和《古兰经》传统中)亚当(人类第一人的名字(optim_args剪辑_参数=没有人

包装torch.optim.Adam随着PyroOptim.

阿达姆(optim_args剪辑_参数=没有人

包装torch.optim.AdamW随着PyroOptim.

SparseAdam(optim_args剪辑_参数=没有人

包装torch.optim.SparseAdam随着PyroOptim.

阿达马克斯(optim_args剪辑_参数=没有人

包装torch.optim.Adamax随着PyroOptim.

ASGD(optim_args剪辑_参数=没有人

包装torch.optim.ASGD随着PyroOptim.

签名于(optim_args剪辑_参数=没有人

包装torch.optim.SGD随着PyroOptim.

拉达姆(optim_args剪辑_参数=没有人

包装torch.optim.RAdam随着PyroOptim.

Rprop(optim_args剪辑_参数=没有人

包装torch.optim.Rprop随着PyroOptim.

RMSprop(optim_args剪辑_参数=没有人

包装torch.optim.RMSprop随着PyroOptim.

那达慕(optim_args剪辑_参数=没有人

包装torch.optim.NAdam随着PyroOptim.

LRScheduler(optim_args剪辑_参数=没有人

包装torch.optim.LRScheduler随着PyroLRScheduler.

兰姆达尔(optim_args剪辑_参数=没有人

包装torch.optim.LambdaLR随着PyroLRScheduler.

乘数l(optim_args剪辑_参数=没有人

包装torch.optim.MultiplicativeLR随着PyroLRScheduler.

StepLR(optim_args剪辑_参数=没有人

包装torch.optim.StepLR随着PyroLRScheduler.

多步骤(optim_args剪辑_参数=没有人

包装torch.optim.MultiStepLR随着PyroLRScheduler.

ConstantLR(optim_args剪辑_参数=没有人

包装torch.optim.ConstantLR随着PyroLRScheduler.

线性LR(optim_args剪辑_参数=没有人

包装torch.optim.LinearLR随着PyroLRScheduler.

指数LR(optim_args剪辑_参数=没有人

包装torch.optim.ExponentialLR随着PyroLRScheduler.

序列LR(optim_args剪辑_参数=没有人

包装torch.optim.SequentialLR随着PyroLRScheduler.

多项式lLR(optim_args剪辑_参数=没有人

包装torch.optim.PolynomialLR随着PyroLRScheduler.

CosineAnnealingLR(optim_args剪辑_参数=没有人

包装torch.optim.CosineAnnealingLR随着PyroLRScheduler.

链式调度程序(optim_args剪辑_参数=没有人

包装torch.optim.ChainedScheduler随着PyroLRScheduler.

ReduceLROnPlateau(optim_args剪辑_参数=没有人

包装torch.optim.ReduceLROnPlateau随着PyroLRScheduler.

CyclicLR(optim_args剪辑_参数=没有人

包装torch.optim.CyclicLR随着PyroLRScheduler.

CosineAnnealingWarmRestarts(optim_args剪辑_参数=没有人

包装torch.optim.CosineAnnealingWarmRestarts随着PyroLRScheduler.

OneCycleLR(optim_args剪辑_参数=没有人

包装torch.optim.OneCycleLR随着PyroLRScheduler.

高阶优化器¶

班级多重优化器[来源]¶

碱基:object

利用高阶导数的优化器的基类。

高阶优化器通常使用torch.autograd.grad()而不是torch.Tensor.backward(),因此需要一个与通常的Pyro和PyTorch优化器不同的接口。在此界面中step()方法输入aloss张量进行微分,并且反向传播在优化器内部被触发一次或多次。

派生类必须实现step()计算导数并就地更新参数。

示例:

tr = poutine.trace(model).get_trace(*args, **kwargs)
loss = -tr.log_prob_sum()
params = {name: site['value'].unconstrained()for name, site in tr.nodes.items()if site['type'] == 'param'}
optim.step(loss, params)

步骤(失败: 火炬。张量参数: 词典)→ 没有人[来源]¶

对给定的可微分参数执行就地优化步骤loss张量。

请注意,这将分离更新的张量。

因素

  • 失败 (火炬。张量)–一个要最小化的可微张量。一些优化器要求它可以多次微分。

  • 参数 (词典)–将参数名称映射到存储在参数存储中的无约束值的字典。

获取_步骤(失败: 火炬。张量参数: 词典)→ 词典[来源]¶

给定一个微分,计算参数的优化步骤loss张量,返回更新后的值。

注意,这保留了更新张量的导数。

因素

  • 失败 (火炬。张量)–一个要最小化的可微张量。一些优化器要求它可以多次微分。

  • 参数 (词典)–将参数名称映射到存储在参数存储中的无约束值的字典。

返回

将参数名映射到更新的无约束值的字典。

返回类型

词典

班级焦多优化器(使最优化: 派若姆,派若姆,派若姆)[来源]¶

碱基:pyro.optim.multi.MultiOptimizer

要包装的外观PyroOptim中的对象MultiOptimizer界面。

步骤(失败: 火炬。张量参数: 词典)→ 没有人[来源]¶

班级火炬多重优化器(optim _构造函数: torch . optim . optimizer . optimizeroptim_args: 词典)[来源]¶

碱基:pyro.optim.multi.PyroMultiOptimizer

要包装的外观Optimizer中的对象MultiOptimizer界面。

班级MixedMultiOptimizer(部件: 目录)[来源]¶

碱基:pyro.optim.multi.MultiOptimizer

容器类来组合不同的MultiOptimizer不同参数的实例。

因素

部件 (目录)–一个列表(names, optim)成对,其中每个names是参数名列表,每个optim是一个MultiOptimizer或者PyroOptim用于命名参数的。一起names应该划分所有期望的参数以进行优化。

举起

值错误–如果任何名称被多个优化器优化。

步骤(失败: 火炬。张量参数: 词典)[来源]¶

获取_步骤(失败: 火炬。张量参数: 词典)→ 词典[来源]¶

班级牛顿(信任半径: 词典 = {})[来源]¶

碱基:pyro.optim.multi.MultiOptimizer

实施MultiOptimizer它对成批的低维变量执行牛顿更新,可选地通过每个参数进行正则化trust_radius。看见newton_step()详情请见。

的结果get_step()将是可微分的,但是来自step()会超脱。

因素

信任半径 (词典)–将参数名称映射到信任区域半径的字典。缺失名称将使用非正则化牛顿更新,相当于无限信任半径。

获取_步骤(失败: 火炬。张量参数: 词典)[来源]¶

以前的然后

这篇关于pyro.optim pyro ppl 概率编程 优化器 pytorch的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137980

相关文章

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

hdu4865(概率DP)

题意:已知前一天和今天的天气概率,某天的天气概率和叶子的潮湿程度的概率,n天叶子的湿度,求n天最有可能的天气情况。 思路:概率DP,dp[i][j]表示第i天天气为j的概率,状态转移如下:dp[i][j] = max(dp[i][j, dp[i-1][k]*table2[k][j]*table1[j][col] )  代码如下: #include <stdio.h>#include

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者