gpt4 book ai didi

python - 了解 CNN 中的 batch_size

转载 作者:行者123 更新时间:2023-12-04 22:39:07 25 4
gpt4 key购买 nike

假设我在 Pytorch 中有一个 CNN 模型和以下大小的 2 个输入:

  • 输入_1: [2, 1, 28, 28]
  • 输入_2: [10, 1, 28, 28]

  • 备注 :
  • 重申一下,input_1 是batch_size == 2,input_2 是batch_size == 10。
  • Input_2 是 input_1 的超集。即 input_2 包含 input_1 中相同位置的 2 张图像。

  • 我的问题是 :CNN 如何处理两个输入中的图像? IE。 CNN 是否按顺序处理批次中的每个图像?或者它是否将批量大小的所有图像连接起来,然后按照通常的方式执行卷积?

    我问的原因是因为:
  • CNN(input_1) != CNN(input_2)[:2]
  • 的输出

    也就是说,batch_size 的差异导致两个输入 的 CNN 输出略有不同。相同职位 .

    最佳答案

    CNN是卷积神经网络的总称。根据特定的架构,它可能会做不同的事情。 CNN 的主要构建块是 convolutions不会在批量和逐点非线性项之间引起任何“串扰”,例如 ReLU这也没有。然而,大多数架构还涉及其他操作,例如规范化层——可以说最受欢迎的是 batch norm其中 引入串扰。很多机型也会用dropout它在 eval 之外随机运行模式(默认情况下,模型处于 train 模式)。上述两种效果都可能导致上述观察到的结果,以及可能导致批次间串扰的其他自定义操作。

    除此之外,因为 numeric precision问题,您的代码可能不会给出完全相同的结果,即使它没有任何跨批处理操作。这个错误非常小,但足以在使用 CNN(input_1) == CNN(input_2)[:2] 检查时表现出来。 .最好用 allclose 相反,使用合适的 epsilon。

    关于python - 了解 CNN 中的 batch_size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59633685/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com