簡體   English   中英

批大小如何影響神經網絡中的時間執行?

[英]How does batch size impact time execution in neural networks?

我正在使用CNN(卷積神經網絡)模型來訓練cifar10。 我嘗試在每次執行時更改批處理大小,以查看其對時間的影響

我的結論是:批量越大,執行模型所需的時間越多。

這看起來是否合乎邏輯,因為在每批處理結束時,我們都應用反向傳播算法,這意味着在批處理較大的情況下,我們將應用較少的梯度下降,因此從邏輯上講,我們應該有更少的執行時間。

我發現相反。 你們覺得怎么樣 ! 謝謝

這是我的會話代碼:

       with tf.Session() as sess:
         sess.run(init)
         summary_writer =tf.summary.FileWriter(logs_path,graph=tf.get_default_graph())
        start_time = time.time()
        for i in range(iteration_number):
          j = (i - epoch) * batch_size % number_of_examples
          k= (i - epoch + 1) * batch_size % number_of_examples
          if (k < j): # THE END OF DATA SET ------------------------
            k = number_of_examples
            batch_x = train_images[j:number_of_examples, :]
            batch_y = train_labels[j:number_of_examples, :]
            print("Iter " + str(i) + ", epoch Loss= " + \
                    "{:.6f}".format(loss) + ", Training Accuracy= " + \
                    "{:.5f}".format(acc))

            data = numpy.concatenate((train_images, train_labels), axis=1)
            numpy.random.shuffle(data)
            train_images = data[:, :3072]
            train_labels = data[:, 3072:3082]
            epoch = i + 1

          else:
            batch_x = train_images[j:k, :]
            batch_y = train_labels[j:k, :]
            loss, acc, summary = sess.run([cost, accuracy, merged_summary_op], feed_dict={x: batch_x,
                                                        y: batch_y,
                                                        keep_prob: 0.3})
            summary_writer.add_summary(summary)

            sess.run(optimizer, feed_dict={x: batch_x, y: batch_y,
                                        keep_prob: dropout})

批次大小基本上表示您要多長時間調整一次神經網絡的權重。 批次大小為1意味着您將給NN 1輸入和輸出對,使用輸入傳播網絡,計算誤差並調整權重。 如果批次大小與數據集大小相同,則NN將傳播所有輸入輸出對,並加總誤差並最終調整權重。 使用大的批次大小通常會給您帶來不太准確的結果,但它們更適合平均值,您可以說輸出會變得模糊不清,以避免某些數據出現極大的誤差,而對其他數據產生非常小的誤差。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM