问题标签 [stochastic-gradient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
38 浏览

python - pytorch - IndexError:索引 59 超出了尺寸为 5 的维度 0 的范围

尝试将随机梯度朗之万动力学模型实施到数据集时出现此错误。`def SGLD_step(network, X, y, N_training, epsilon): """ 给定一个 mini-batch 运行 SGLD 的一步,并更新网络的参数。

样本 = draw_sgld_samples(网络,N_samples=100,N_steps_per_sample=200)

0 投票
0 回答
64 浏览

deep-learning - Pytorch:与 SGD 相比,Adam 优化器显着减少了梯度流

我正在 Pytorch 中训练基于变压器的架构。我使用以下代码在训练期间跟踪网络的梯度流:

通过使用 SGD 时,opt = torch.optim.SGD(model.parameters(), lr=0.01)我通过网络获得了不错的梯度流(见下图)

带有 SGD 的梯度

opt = torch.optim.Adam(model.parameters(), lr=0.01, betas=(0.9, 0.98), eps=1e-9)但是,当我在第一层之后通过渐变死了 Adam 优化(见下图)

渐变与亚当

这是预期的行为吗?

0 投票
1 回答
52 浏览

python - 为什么使用 loss.backward() 与 torch.auto.grad 时梯度不相等?

我在尝试通过 SGD“手动”优化网络参数时遇到了这种奇怪的行为。当尝试使用以下方式更新模型的参数时,它工作得很好:

但是,执行以下操作会完全脱离模型:

但对我来说,这两种方法应该是等价的。进一步检查,当比较 from 的值和gfromgrad的值时p.gradm.paramters()结果发现梯度值一样!我也尝试删除with torch.no_grad():并执行以下操作,但它也不起作用:

有人可以解释为什么会这样吗?两种方法中的梯度不应该具有相同的值(请记住,两个模型m是相同的)?

可重现的例子:

确保重现性:

加载数据:

定义要优化的模型:

培训和评估:

0 投票
1 回答
22 浏览

python - 遇到 TypeError:创建 SGD 算法时,不能将序列乘以“浮点”类型的非整数

代码输出 TypeError: can't multiply sequence by non-int of type 'float'。我已经在每个可能的步骤将值转换为浮点数,但错误仍然存​​在。关键线主要是与 SGD 的定义功能有关的那些。