Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

858
Vistas
What does model.eval() do in pytorch?

When should I use .eval()? I understand it is supposed to allow me to "evaluate my model". How do I turn it back off for training?

Example training code using .eval().

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

model.eval() is a kind of switch for some specific layers/parts of the model that behave differently during training and inference (evaluating) time. For example, Dropouts Layers, BatchNorm Layers etc. You need to turn off them during model evaluation, and .eval() will do it for you. In addition, the common practice for evaluating/validation is using torch.no_grad() in pair with model.eval() to turn off gradients computation:

# evaluate model:
model.eval()

with torch.no_grad():
    ...
    out_data = model(data)
    ...

BUT, don't forget to turn back to training mode after eval step:

# training step
...
model.train()
...
over 4 years ago · Santiago Trujillo Denunciar

0

model.train() model.eval()
Sets model in training mode:

• normalisation layers1 use per-batch statistics
• activates Dropout layers2
Sets model in evaluation (inference) mode:

• normalisation layers use running statistics
• de-activates Dropout layers
Equivalent to model.train(False).

You can turn off evaluation mode by running model.train(). You should use it when running your model as an inference engine - i.e. when testing, validating, and predicting (though practically it will make no difference if your model does not include any of the differently behaving layers).


  1. e.g. BatchNorm, InstanceNorm
  2. This includes sub-modules of RNN modules etc.
over 4 years ago · Santiago Trujillo Denunciar

0

model.eval is a method of torch.nn.Module:

eval()

Sets the module in evaluation mode.

This has any effect only on certain modules. See documentations of particular modules for details of their behaviors in training/evaluation mode, if they are affected, e.g. Dropout, BatchNorm, etc.

This is equivalent with self.train(False).

The opposite method is model.train explained nicely by Umang Gupta.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda