gradient-descent相关内容

如何在张量流中交替训练op?

我正在实施一项轮换培训计划.该图包含两个训练操作.培训应该在这两者之间交替进行. 这与此或下面是一个小例子.但这似乎在每个步骤上都更新了两个操作.我该如何在这些之间显式交替? from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf # Import data mnist = i ..

Tensorflow梯度始终为零

我编写了一个小的Tensorflow程序,该程序通过相同的卷积内核连续 num_unrollings 次对图像补丁进行卷积,然后尝试最小化两者之间的均方差结果值和目标输出。 但是,当我运行 num_unrollings 大于1的模型时,我损失的梯度( tf_kernel )的c $ c> tf_loss )项为零,因此不会发生学习。 这是我能想到的最小的代码(python 3),对长度 ..
发布时间:2020-10-09 03:03:25 其他开发

Tensorflow 2.0不计算梯度

我想可视化CNN中给定功能图所学的模式(在此示例中,我使用的是vgg16)。为此,我创建了一个随机图像,通过网络馈送到所需的卷积层,选择特征图并找到相对于输入的渐变。想法是以最大程度激活所需特征图的方式更改输入。使用tensorflow 2.0我有一个GradientTape跟随该函数,然后计算梯度,但是该梯度返回None,为什么它无法计算梯度? 导入tensorflow as tf i ..
发布时间:2020-10-09 02:45:29 Python

如何在张量流中累积梯度?

我有一个类似于此问题的问题。 因为我的资源有限,并且我使用的是深模型(VGG-16)-用于训练三重态网络-我想累积128批大小的渐变一个训练示例,然后传播错误并更新权重。 我不清楚如何执行此操作。我使用tensorflow,但是任何实现/伪代码都是受欢迎的。 解决方案 让我们逐一介绍您喜欢的答案之一中提出的代码: ##优化器定义-与任何经典示例没有什么不同 opt = ..
发布时间:2020-10-09 02:44:26 其他开发

在监督分类中,带有partial_fit()的MLP比使用fit()的性能差

我正在使用的学习数据集是灰度图像,该图像被展平,以使每个像素代表一个单独的样本。在对前一个分类器进行多层感知器( MLP )分类器训练之后,第二个图像将按像素进行分类。 / p> 我遇到的问题是, MLP 一次接收全部训练数据集时的性能会更好( fit())与通过块训练( partial_fit())进行比较。在这两种情况下,我都保留 Scikit-learn 提供的默认参数。 我在问 ..

这样的Tensorflow和Theano中的动量梯度更新有何不同?

我正在尝试将TensorFlow用于我的深度学习项目. 在这里,我需要在此公式中实现渐变更新: 我也在Theano中实现了这一部分,它给出了预期的答案.但是当我尝试使用TensorFlow的MomentumOptimizer时,结果确实很糟糕.我不知道他们之间有什么不同. Theano: def gradient_updates_momentum_L2(cost, params ..
发布时间:2020-07-24 10:11:02 其他开发

C ++库中的快速梯度下降实现?

我正在寻找一种梯度下降优化方法,以最大程度地减少实例化变量的成本.我的程序在计算上非常昂贵,因此我正在寻找一种具有GD快速实现的流行库.推荐的库/参考是什么? 解决方案 GSL 是优秀(免费)的库,已经实现了数学和科学兴趣的通用功能. 您可以阅读整个在线参考手册.随便看看,这开始出现有趣,但是我认为我们需要更多地了解这个问题. ..

如何将深度学习梯度下降方程式转换为python

我一直在关注有关深度学习的在线教程.它有一个关于梯度下降和成本计算的实际问题,在将其转换为python代码后,我一直在努力获得给定的答案.希望您能帮助我获得正确答案 使用的方程式请参见以下链接 点击此处查看用于计算的方程式 以下是用于计算梯度下降,成本等的函数.无需使用for循环而是使用矩阵操作运算即可找到这些值 import numpy as np def propagate ..

为什么深度神经网络不能近似简单的ln(x)函数?

我创建了具有两个RELU隐藏层+线性激活层的ANN,并尝试近似简单的ln(x)函数.而且我做不到这一点.我很困惑,因为应该将x:[0.0-1.0]范围内的lx(x)近似化而没有问题(我正在使用学习率0.01和基本的梯度下降优化方法.) import tensorflow as tf import numpy as np def GetTargetResult(x): curY = ..

神经网络回归的小批量选择

我正在做具有4个特征的神经网络回归.如何确定我的问题的小批量生产规模?我看到人们使用100〜1000批处理大小的计算机视觉,每个图像具有32 * 32 * 3个功能,这是否意味着我应该使用100万批处理大小?我有数十亿的数据和数十GB的内存,因此没有硬性要求,我不这样做. 我还观察到使用大小为〜1000的微型批处理会使收敛快于批处理大小为100万的批处理.我认为应该相反,因为以较大的批次大小 ..
发布时间:2020-05-17 19:18:18 其他开发

三重态损失的softmax版本的梯度计算

我一直在尝试在Caffe中实现Caffe的三重态损失的softmax版本, Hoffer和Ailon,使用三重态网络进行深度度量学习,ICLR 2015 我已经尝试过此方法,但是由于指数L2不成平方,因此我发现很难计算梯度. 有人可以在这里帮助我吗? 解决方案 使用现有的caffe层来实施L2规范可以节省所有麻烦. 这是在Caffe中针对“底部" x1和x2计算||x1 ..

为什么我们需要显式调用zero_grad()?

为什么我们需要在PyTorch中将梯度显式归零?为什么在调用loss.backward()时梯度不能归零?通过在图表上保留渐变并要求用户将渐变显式清零,可以提供什么服务? 解决方案 我们明确需要调用zero_grad(),因为在loss.backward()之后(计算梯度时),我们需要使用optimizer.step()进行梯度下降.更具体地说,梯度不会自动归零,因为loss.backwa ..

为什么我们需要在PyTorch中调用zero_grad()?

在训练过程中需要调用方法zero_grad().但是文档不是很有帮助 | zero_grad(self) | Sets gradients of all model parameters to zero. 我们为什么需要调用此方法? 解决方案 在 PyTorch 中,我们需要设置在开始反向传播之前将梯度降为零,因为PyTorch 会在随后的向后传递中积累梯度.在训练RNN ..
发布时间:2020-05-17 19:11:17 Python