【问题标题】:Batch_size in tensorflow? Understanding the concept张量流中的批处理大小?理解概念
【发布时间】:2017-03-24 12:01:14
【问题描述】:

我的问题很简单直接。在训练和预测神经网络时,批量大小指定了什么。如何对其进行可视化,以便清楚地了解数据是如何被馈送到网络的。

假设我有一个自动编码器

encoder = tflearn.input_data(shape=[None, 41])
encoder = tflearn.fully_connected(encoder, 41,activation='relu')

我将输入作为具有 41 个特征的 csv 文件,据我所知,当我的批量大小为 1 时,它将从 csv 文件中获取每个特征并将其提供给第一层的 41 个神经元。

但是当我将批次大小增加到 100 时,这 100 个批次的 41 个特征将如何馈送到这个网络?

model.fit(test_set, test_labels_set, n_epoch=1, validation_set=(valid_set, valid_labels_set),
          run_id="auto_encoder", batch_size=100,show_metric=True, snapshot_epoch=False)

是否会对批次进行任何规范化或对它们进行一些操作?

两种情况的 epoc 数相同

【问题讨论】:

    标签: python-3.x tensorflow tflearn


    【解决方案1】:

    批量大小是您在网络中提供的样本量。对于您的输入编码器,您指定输入未指定(无)数量的样本,每个样本有 41 个值。

    使用 None 的优点是您现在可以一次使用 100 个值的批次进行训练(这有利于您的梯度),并使用仅一个值的批次进行测试(您想要预测的一个样本)。

    如果您不指定每批次的标准化,则每批次都没有标准化;)

    希望我解释得足够好!如果您有更多问题,请随时提出!

    【讨论】:

    • 感谢您的回复,但我的问题是,如果我将批量大小设为 1,那么 41 个特征的第一行将进入 NN 进行训练,然后反向传播 1 个时期的权重.当我将批量大小增加到 100 时,它是否需要 41 个特征并提取必要的信息,它会为 100 个批量执行此操作,然后进行反向传播?我在这里吗?
    • 它将始终为您放入网络的整个 test_set 运行。假设您有 300 个样本...批量大小为 1 和 100 之间的区别在于,在第一种情况下,他反向传播 300 次,而在第二种情况下,他这样做了 3 次。第二个更快,更精确。
    • 使用batchsize有没有用处?
    • @rmeertens 你澄清了我对增加batch_size 在速度和精度方面的好处的疑虑,但是将batch_size 保持在较低的值有什么好处吗?
    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    相关资源
    最近更新 更多