问题标签 [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.
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)
python - 为什么使用 loss.backward() 与 torch.auto.grad 时梯度不相等?
我在尝试通过 SGD“手动”优化网络参数时遇到了这种奇怪的行为。当尝试使用以下方式更新模型的参数时,它工作得很好:
但是,执行以下操作会完全脱离模型:
但对我来说,这两种方法应该是等价的。进一步检查,当比较 from 的值和g
fromgrad
的值时p.grad
,m.paramters()
结果发现梯度值不一样!我也尝试删除with torch.no_grad():
并执行以下操作,但它也不起作用:
有人可以解释为什么会这样吗?两种方法中的梯度不应该具有相同的值(请记住,两个模型m
是相同的)?
可重现的例子:
确保重现性:
加载数据:
定义要优化的模型:
培训和评估:
python - 遇到 TypeError:创建 SGD 算法时,不能将序列乘以“浮点”类型的非整数
代码输出 TypeError: can't multiply sequence by non-int of type 'float'。我已经在每个可能的步骤将值转换为浮点数,但错误仍然存在。关键线主要是与 SGD 的定义功能有关的那些。