问题标签 [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 回答
16 浏览

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]

这是我用来初始化权重的玩具问题:

0 投票
0 回答
17 浏览

python - 随机梯度体面算法的值误差

我无法运行我的 SGD 代码,也不知道问题出在哪里。如果你能帮助我,那就太好了。这是我的代码:

我称这个函数为:

但是出现值错误:

ValueError:发现样本数量不一致的输入变量:[1151, 2]

f1尺寸问题ceodef stochastic_gradient_descent(self). 但我不知道如何解决这个问题。你能给我一些提示吗?

0 投票
1 回答
46 浏览

python - 这个 SGD 损失图有什么问题?

我一直在尝试训练音频分类模型。当我使用 learning_rate=0.01、momentum=0.0 和 nesterov=False 的 SGD 时,我得到以下损失和准确度图:

在此处输入图像描述

我无法弄清楚是什么原因导致损失在 750 轮左右立即减少。我尝试了不同的学习率、动量值及其组合、不同的批量大小、初始层权重等以获得更合适的图表,但完全没有运气. 因此,如果您对导致此问题的原因有任何了解,请告诉我。

我用于此培训的代码如下:

0 投票
1 回答
124 浏览

python - 我怎样才能让我的神经网络正确地进行线性回归?

我使用 Michael Nielsen 的《神经网络和深度学习》一书中的第一个神经网络代码,用于识别手写数字。它使用带有小批量和 sigmoid 激活函数的随机梯度下降。我给了它一个输入神经元、两个隐藏神经元和一个输出神经元。然后我给它一堆数据,它代表一条直线,所以基本上是零到 1 之间的许多点,其中输入与输出相同。无论我如何调整学习率和使用的 epoch 数,网络永远无法进行线性回归。这是因为我使用的是 sigmoid 激活函数吗?如果是这样,我还可以使用什么其他功能?

基于新输入的网络预测

蓝线代表网络的预测,而绿线是训练数据,网络预测的输入只是 0 到 3 之间的数字,间隔为 0.01。

这是代码:

0 投票
1 回答
355 浏览

tensorflow - GAN - 生成器损失减少,但鉴别器假损失在初始下降后增加,为什么?

我正在学习 GAN 并试图在自定义数据集上运行 pix2pix GAN 模型,我每个时期的平均生成器损失和平均鉴别器假和真实损失如下 - 在此处输入图像描述

在此处输入图像描述

我只是无法理解,为什么我的生成器损失减少但鉴别器假图像损失增加?据我了解,它应该像发电机一样下降。有人可以帮我理解我犯的错误或我面临的培训问题吗?

批量大小:16
时期:100
学习率:0.0008
L1 Lambda:100
优化器:Gen - Adam;生成器中使用的Disc-SGD
BatchNORM。

0 投票
0 回答
27 浏览

tensorflow - optimize.minimize “没有为任何变量提供梯度,检查你的图表中不支持梯度的操作,变量之间”

我的代码是:

但我得到的错误是:没有为任何变量提供渐变,请检查您的图表以查找变量之间不支持渐变的操作。我应该检查什么?

0 投票
1 回答
28 浏览

tensorflow - Tensorflow 中的 SGD 是否对每个数据点进行移动?

我假设随机梯度下降中的“随机”来自每批中样本的随机选择。但我读过的关于该主题的文章似乎表明 SGD 对每个数据点都有一个小的移动(权重变化)。Tensorflow 是如何实现的?

0 投票
0 回答
51 浏览

python - Sklearn 随机梯度下降:在“str”和“int”的实例之间不支持“<”

我正在尝试使用随机梯度下降来找到准确性。我正在关注官方页面中的文档,但是在运行代码时出现错误。这是我的代码:

这是错误:

0 投票
1 回答
137 浏览

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

0 投票
0 回答
37 浏览

python - pytorch:实现自定义优化器

我正在尝试使用 pytorch 实现稍微不同的 SGD 版本,并在一些数据集上对其进行测试。我需要编写一个自定义优化器来训练我的模型,但是我找不到任何解释如何这样做的指南。有人能告诉我如何继续或建议我任何有用的参考吗?

提前致谢。