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. 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.

Kilder

1