... build the graph ...
train_step =
tf.train.GradientDescentOptimizer(learning_rate).minimize(cross_entropy)
sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
for _ in range(1000):
batch_xs, batch_ys = data.next_batch(batch_size)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
在典型的张量流神经网络训练中,我们通常使learning_rate
衰减,但很少使batch_size
增加。我认为使batch_size
增加也可以使神经网络收敛并避免令人震惊。这是我对训练神经网络的建议。你觉得它有用吗?
答案 0 :(得分:1)
如果你的下降很吵:
增加batch_size
将稳定波动,因为梯度将在更高数量的样本上取平均值。
learning_rate
半分的效果类似于batch_size
加倍的效果,但不相同(从矢量角度来看,这是不同的)。从数学的角度来看,learning_rate
的半分更好,但是batch_size
加倍,可能(!)在计算上更方便。
如果噪音低:
减少learning_rate
是唯一可行的选择。如果您的渐变方向没有嘈杂,那么增加batch_size
并不会改变这种情况。然而,较小的learning_rate
可能是有用的,因为一个重要的步骤可能使渐变方向不具代表性,并且您可以退出"山谷"。