model.eval()
En metode i PyTorch der skifter modellen til evalueringstilstand, hvilket deaktiverer dropout og fikserer batch-normaliseringslag.
Kort fortalt
"model.eval()" fortæller din model, at den ikke skal træne, så den opfører sig korrekt ved test eller inferens.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
Indstiller modellen til evalueringstilstand, hvilket påvirker lag med forskellig opførsel under træning og inferens, såsom dropout og batch normalization.
- Efter træning skal man huske at kalde model.eval() før test. — PyTorch documentation
- model.eval() deaktiverer dropout, så alle neuroner bruges. — PyTorch tutorial
Hvornår bruges det
Bruges før inferens eller evaluering for at sikre konsistent adfærd fra lag som dropout og batch normalization. Skal parres med torch.no_grad() for at spare hukommelse.
Kodeeksempel
import torch
import torch.nn as nn
model = nn.Sequential(nn.Linear(10, 5), nn.Dropout(0.5))
model.eval() # Slår dropout fra
with torch.no_grad():
output = model(torch.randn(1, 10))Eksempel der viser brug af model.eval() til at slå dropout fra under inferens.
Oprindelse
"eval" er en forkortelse af "evaluation" (evaluering), og metoden introduceres i PyTorch for at skelne mellem trænings- og testfaser.