问题标签 [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 - 覆盖 TF2 优化器类,应用渐变有问题?
我正在尝试实现我自己的优化器(SGD + 动量),它会覆盖原始的 keras SGD + 动量类。我正在尝试传入一些预训练的初始化参数和超参数(速度、动量和学习率),并将它们用作我的 SGD + 动量的超参数。在对 TF2 优化器类进行了一些修改之后,我推断用我自己的速度权重覆盖创建槽,然后将它们乘以动量常数应该可以解决问题,但是,当我尝试 optim.apply_gradients( )。关于我是否在正确的方向上的任何输入?这是我编辑的课程:
然后使用 iris 数据集初始化和使用来自 TF2 的简单训练循环,会引发一些错误:
抛出此错误:
/usr/local/lib/python3.7/dist-packages/six.py in raise_from(value, from_value)
InvalidArgumentError: var 和 accum 的形状不同[4,10] [10] [Op:ResourceApplyKerasMomentum]
这是我用来初始化权重的玩具问题:
python - 随机梯度体面算法的值误差
我无法运行我的 SGD 代码,也不知道问题出在哪里。如果你能帮助我,那就太好了。这是我的代码:
我称这个函数为:
但是出现值错误:
ValueError:发现样本数量不一致的输入变量:[1151, 2]
f1
尺寸问题ceo
在def stochastic_gradient_descent(self)
. 但我不知道如何解决这个问题。你能给我一些提示吗?
python - 我怎样才能让我的神经网络正确地进行线性回归?
我使用 Michael Nielsen 的《神经网络和深度学习》一书中的第一个神经网络代码,用于识别手写数字。它使用带有小批量和 sigmoid 激活函数的随机梯度下降。我给了它一个输入神经元、两个隐藏神经元和一个输出神经元。然后我给它一堆数据,它代表一条直线,所以基本上是零到 1 之间的许多点,其中输入与输出相同。无论我如何调整学习率和使用的 epoch 数,网络永远无法进行线性回归。这是因为我使用的是 sigmoid 激活函数吗?如果是这样,我还可以使用什么其他功能?
蓝线代表网络的预测,而绿线是训练数据,网络预测的输入只是 0 到 3 之间的数字,间隔为 0.01。
这是代码:
tensorflow - optimize.minimize “没有为任何变量提供梯度,检查你的图表中不支持梯度的操作,变量之间”
我的代码是:
但我得到的错误是:没有为任何变量提供渐变,请检查您的图表以查找变量之间不支持渐变的操作。我应该检查什么?
tensorflow - Tensorflow 中的 SGD 是否对每个数据点进行移动?
我假设随机梯度下降中的“随机”来自每批中样本的随机选择。但我读过的关于该主题的文章似乎表明 SGD 对每个数据点都有一个小的移动(权重变化)。Tensorflow 是如何实现的?
python - Sklearn 随机梯度下降:在“str”和“int”的实例之间不支持“<”
我正在尝试使用随机梯度下降来找到准确性。我正在关注官方页面中的文档,但是在运行代码时出现错误。这是我的代码:
这是错误:
machine-learning - 遇到看不见的值时,SGD 会崩溃
这是我的代码:
X_text_train & X_text_test 的形状分别为 (2M, 2) 和 (100k, 2)。
他们的第一栏是关于金融交易的描述,一般来说每个描述由5-15个单词组成;所以每行包含大约 5-15 个单词。第二列是一个分类变量,只有与该银行交易相关的银行名称。
我将这两列合并到一个描述中,所以现在 X_text_train 和 X_text_test 分别具有形状 (2M, ) 和 (100k, )。
然后我应用 TF-IDF,现在 X_text_train & X_text_test 的形状分别为 (2M, 50k) 和 (100k, 50k)。
我观察到的是,当第二列上有一个看不见的值(因此合并描述中的新银行名称)时,SGDClassifier 返回一些非常不同且非常随机的预测,而不是如果我完全删除第二列会返回的预测与银行名称。
如果我仅在描述上执行 TF-IDF 并将银行名称单独保留为分类变量,也会发生同样的情况。
为什么会发生这种情况SGDClassifier
?是否因为 SGD 以这种随机方式收敛,所以一般来说 SGD 不能很好地处理所有看不见的值?
有趣的是,在 TF-IDF 上,词汇表是预先确定的,因此测试集中的看不见的值在特征中基本上根本不考虑(即所有各自的特征只有 0 作为值),但 SGD 仍然中断。
(我也在 skLearn 的 Github 上发布了这个https://github.com/scikit-learn/scikit-learn/issues/21906)
python - pytorch:实现自定义优化器
我正在尝试使用 pytorch 实现稍微不同的 SGD 版本,并在一些数据集上对其进行测试。我需要编写一个自定义优化器来训练我的模型,但是我找不到任何解释如何这样做的指南。有人能告诉我如何继续或建议我任何有用的参考吗?
提前致谢。