在Python中进行梯度下降的一种方法是自己编写代码。然而,考虑到它在机器学习中有多么流行,我想知道是否有一个Python库可以导入,给我一个梯度下降方法(最好是小批处理梯度下降,因为它通常比批处理和随机梯度下降更好,但是如果我错了,请纠正我)。
我检查了NumPy和SciPy,但什么也找不到。我没有使用TensorFlow的经验,但是浏览了他们的在线API。我找到了tf.train.GradientDescentOptimizer,但是没有参数可以让我选择批处理大小,所以我对它的实际情况非常模糊。
抱歉,如果我听起来天真的话。我学了很多这些东西。
发布于 2018-05-08 16:09:20
为了说明明显的,梯度下降是优化的一个函数。当您使用某些库的梯度下降的实现时,您需要使用这个库的构造指定函数。例如,函数在TensorFlow中表示为计算图。您不能只使用一些纯python函数,并要求TensorFlow的梯度下降优化器对其进行优化。
如果用例允许您使用TensorFlow计算图(以及所有相关的机制--如何运行函数、计算其梯度),那么tf.train.*Optimizer
将是一个明显的选择。否则,它是不可用的。
如果您需要一些轻松的东西,那么https://github.com/HIPS/autograd可能是所有流行库中最好的选择。它的优化器可以在这里找到:https://github.com/HIPS/autograd/blob/master/autograd/misc/optimizers.py
https://stackoverflow.com/questions/50225723
复制