Die*_*ana 5 python optimization training-data neural-network tensorflow
我有以下问题:我正在尝试学习张量流,但我仍然没有找到将培训设置为在线或批量的位置.例如,如果我有以下代码来训练神经网络:
loss_op = tf.reduce_mean(tf.pow(neural_net(X) - Y, 2))
optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)
train_op = optimizer.minimize(loss_op)
sess.run(train_op, feed_dict={X: batch_x, Y: batch_y})
Run Code Online (Sandbox Code Playgroud)
如果我同时提供所有数据(即batch_x包含所有数据),这是否意味着培训是批量培训?或者张量流优化器以不同的方式优化?如果我一次执行一个数据样本的for循环,是不是错了?这算是单步(在线)培训吗?谢谢您的帮助.
主要有三种渐变下降类型.特别,
这是一个很好的教程(https://machinelearningmastery.com/gentle-introduction-mini-batch-gradient-descent-configure-batch-size/),对上述三种方法有好处和缺点.
对于您的问题,以下是标准样本培训张量流代码,
N_EPOCHS = #Need to define here
BATCH_SIZE = # Need to define hare
with tf.Session() as sess:
train_count = len(train_x)
for i in range(1, N_EPOCHS + 1):
for start, end in zip(range(0, train_count, BATCH_SIZE),
range(BATCH_SIZE, train_count + 1,BATCH_SIZE)):
sess.run(train_op, feed_dict={X: train_x[start:end],
Y: train_y[start:end]})
Run Code Online (Sandbox Code Playgroud)
这里N_EPOCHS表示整个训练数据集的传递次数.您可以根据Gradient Descent方法设置BATCH_SIZE.
对于Batch Gradient Descent,BATCH_SIZE =训练数据集大小.
对于Mini Batch Gradient Decent,1 << BATCH_SIZE <<训练数据集大小.
在三种方法中,最流行的方法是Mini Batch Gradient Decent.但是,您需要根据您的要求设置BATCH_SIZE参数.BATCH_SIZE的良好默认值可能是32.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2840 次 |
| 最近记录: |