[英]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.