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