我是张量流的初学者,我想实现MLP并基于反向传播算法训练它但是当我阅读教程时,我发现它使用了像“随机梯度下降”这样的选择器,并称之为反向传播,而没有实现算法阶段。这种反向传播怎么样?
答案 0 :(得分:1)
通常,您首先使用这些优化器来定义损失函数,然后在其上调用优化程序.optimize
:
loss = some_loss(predicted_outputs, true_outputs)
optimizer = tf.train.GradientDescentOptimizer(learning_rate)
train_op = optimizer.minimize(loss)
现在,执行sess.run(train_op)
将在权重渐变的方向上迈出一步,以尽量减少损失。
答案 1 :(得分:0)
我认为这可能有所帮助:
在[18]中,两种通过a传播梯度的方法 描述了计算图。第一,作者提到 作为符号到数字的区分,接收一组输入 值然后计算渐变的数值 那些输入值。它通过显式遍历图表来实现 首先在前向顺序(前向传播)中计算成本, 然后以相反的顺序(反向传播)来计算梯度 链规则。另一种与TensorFlow更相关的方法是什么 [18]称符号到符号的衍生物和[8]术语是自动的 梯度计算。在这种情况下,渐变不是由a计算的 显式实现反向传播算法。相反, 特殊节点被添加到计算图形中以计算 每个操作的梯度,从而最终是链规则。至 执行反向传播,然后必须简单地执行这些节点 与图形评估引擎的任何其他节点一样。就这样,这个 方法不会产生所需的导数作为数值, 但仅作为计算这些值的符号句柄。