簡體   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