2

入力テンソルにミニバッチ サイズのデータ​​を供給すると、GradientDescentOptimizer がすでにミニバッチを実装していると言うと、Tensorflow は API を最小化しますか?

ミニバッチがメソッドに実装されていないことを示すこのボルグを読んでいました。最初に実行してから勾配を蓄積し、最後に を実行してミニバッチトレーニングを終了する必要があります。minimizecompute_gradientsapply_gradients

def train_standard(opt_type, learning_rate, image_set):
# Arrays for logging accuracy and loss
acc_log = np.zeros(len(image_set))
loss_log = np.zeros(len(image_set))
# Create optimizer
opt = opt_type(learning_rate)
#
# no-minibatch (standard, simple) operation
#
minimize = opt.minimize(loss)
# Create session to execute ops
sess = tf.InteractiveSession()
# Necessary initializations
tf.set_random_seed(1234)
tf.global_variables_initializer().run()
# Train loop
for i, batch in enumerate(image_set):
    sess.run(minimize, feed_dict={x: batch[0], y_: batch[1]})

    acc_log[i] = sess.run(accuracy, 
                          feed_dict={x: mnist.test.images, y_: mnist.test.labels})
    loss_log[i] = sess.run(loss, 
                           feed_dict={x: mnist.test.images, y_: mnist.test.labels})

return acc_log, loss_log

しかし、実験を行ったところ、2 つのアプローチで同様の結果が得られることがわかりました。トレーニングデータの1行だけではなく、ミニバッチサイズの行列である場合、minimizeメソッドがミニバッチ更新を行うかどうか疑問に思います。feed_dict

この質問を明確にし、間違っている場合は修正するのを手伝ってくれる人はいますか?

よろしくお願いします

4

1 に答える 1