繁体   English   中英

使用 model 推断批次与使用 pytorch 的个体时的不同结果

[英]differing results when using model to infer on a batch vs individual with pytorch

我有一个神经网络,它接受维度 (batch_size, 100, 1, 1) 的输入张量并产生维度 (batch_size, 3, 64, 64) 的 output 张量。 当使用 model 推断一批两个元素和单独推断元素时,我有不同的结果。

使用下面的代码,我初始化了一个维度为 (2, 100, 1, 1) 的 pytorch 张量。 我通过 model 传递这个张量,并获取 model output 的第一个元素并存储在变量 result1 中。 对于 result2,我只是通过我的 model 直接运行原始输入张量的第一个元素。

inputbatch=torch.randn(2, Z_DIM, 1, 1, device=device)
inputElement=inputbatch[0].unsqueeze(0)

result1=model(inputbatch)[0]
result2=model(inputElement)

我的期望是 result1 和 result2 是一样的。 但是 result1 和 result2 完全不同。 谁能解释为什么这两个输出不同。

这可能是因为您的 model 有一些随机过程,这些过程要么是特定于训练的,而您没有禁用它们(例如,通过使用model.eval() )或在推理期间需要在 model 处。

要测试上述内容,请使用:


model = model.eval()

在获得result1之前。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM