lum*_*uri 4 python conv-neural-network pytorch
假设我在 Pytorch 中有一个 CNN 模型和以下大小的 2 个输入:
注意事项:
我的问题是:CNN 如何处理两个输入中的图像?即 CNN 是否按顺序处理批次中的每个图像?或者它是否将批量大小的所有图像连接起来,然后按照通常的方式执行卷积?
我问的原因是因为:
也就是说,batch_size 的差异导致相同位置的两个输入的 CNN 输出略有不同。
CNN是卷积神经网络的总称。根据特定的架构,它可能会做不同的事情。CNN 的主要构建块是卷积,它不会在批处理项目之间引起任何“串扰”,而像ReLU这样的逐点非线性也不会引起任何“串扰” 。然而,大多数架构还涉及其他操作,例如归一化层——可以说最流行的是批处理规范,它确实引入了串扰。许多模型还将使用dropout,它在eval模式之外随机表现(默认模型在训练中模式)。上述两种效果都可能导致上述观察到的结果,以及可能导致批次间串扰的其他自定义操作。
除此之外,由于数字精度问题,您的代码可能不会给出完全相同的结果,即使它没有任何跨批处理操作。此错误非常小,但足以在使用CNN(input_1) == CNN(input_2)[:2]
. 最好使用allclose
合适的 epsilon来代替。
归档时间: |
|
查看次数: |
209 次 |
最近记录: |