【问题标题】:Is there a Python library where I can import a gradient descent function/method?是否有可以导入梯度下降函数/方法的 Python 库?
【发布时间】:2018-10-17 22:33:15
【问题描述】:

在 Python 中进行梯度下降的一种方法是自己编写代码。但是,考虑到它在机器学习中的流行程度,我想知道是否有一个 Python 库可以导入,它给了我一个梯度下降方法(最好是小批量梯度下降,因为它通常比批量和随机梯度下降更好,但如果我错了,请纠正我)。

我检查了 NumPy 和 SciPy,但找不到任何东西。我没有使用 TensorFlow 的经验,但查看了他们的在线 API。我找到了 tf.train.GradientDescentOptimizer,但没有参数可以让我选择批量大小,所以我对它的实际含义相当模糊。

对不起,如果我听起来很幼稚。我正在自学很多这些东西。

【问题讨论】:

  • 图中X是batch_size的占位符,在训练中每一步将全量数据分批
  • 首先,我建议您选择 Adam Optimizer 而不是 GradientDescent(关于随机梯度下降,这可以“手动”视为小批量梯度下降,小批量大小等于 @ 987654322@)。至于 TensforFlow,即使您无法选择小批量大小,您仍然可以自己编写该部分并在这些小批量上使用 GradientDescentOptimizer。

标签: python tensorflow import gradient-descent mini-batch


【解决方案1】:

显而易见,梯度下降正在优化一个函数。当您使用某个库的某些梯度下降实现时,您需要使用该库的构造指定函数。例如,函数在 TensorFlow 中表示为计算图。你不能只使用一些纯 Python 函数并要求 TensorFlow 的梯度下降优化器对其进行优化。

如果您的用例允许您使用 TensorFlow 计算图(以及所有相关的机器 - 如何运行函数、计算其梯度),tf.train.*Optimizer 将是一个显而易见的选择。否则无法使用。

如果您需要一些简单的东西,https://github.com/HIPS/autograd 可能是所有流行库中的最佳选择。它的优化器可以在这里找到:https://github.com/HIPS/autograd/blob/master/autograd/misc/optimizers.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-29
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2016-06-13
    • 2020-10-31
    • 1970-01-01
    相关资源
    最近更新 更多