【问题标题】:Does the input size to CNN change depending on the batch size?CNN 的输入大小是否会根据批量大小而变化?
【发布时间】:2018-11-21 14:16:09
【问题描述】:

通常,卷积神经网络 (CNN) 的输入由具有给定 width*height*channels 的图像描述。对于不同数量的批量大小,输入节点的数量是否也会不同?意思是,输入节点的个数会变成batch_size*width*height*channels吗?

【问题讨论】:

  • 这是什么 CNN 的东西(除了电视台)。请在您的问题中添加正确的tag(我很确定这与 Windows 批处理文件无关)

标签: conv-neural-network


【解决方案1】:

来自this excellent answer 批量大小定义了将通过网络传播的样本数量。批量大小对网络架构(包括输入数量)没有影响。

假设您有 1,000 个大小为 32x32 的 RGB 图像,并且您将批量大小设置为 100。您的卷积网络的输入形状应为 32x32x3。为了训练网络,训练算法从总共 1,000 张图像中挑选出 100 张图像的样本,并在该子集中的每个单独图像上训练网络。那是你的“批次”。网络架构并不关心您的子集(批次)是否有 100、200 或 1,000 张图像,它只关心单个图像的形状,因为它一次只能看到这些。当网络对所有 100 张图像进行训练后,它就完成了一个 epoch,并更新了网络参数。

训练算法会为每个 epoch 选择不同批次的图像,但上述情况始终成立:网络一次只能看到一个图像,因此图像形状必须与输入层形状匹配,而不考虑该特定批次中有多少张图片。

至于为什么我们有批次而不是只在整个集合上进行训练(即,将批次大小设置为 100% 并训练一个 epoch),使用 GPU 可以使训练速度更快,同时也意味着参数更新的频率更低,同时训练,提供更平滑和更可靠的收敛。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-25
    • 2014-02-17
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    相关资源
    最近更新 更多