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

333
Vistas
¿Qué hace model.eval() en pytorch?

¿Cuándo debo usar .eval() ? Entiendo que se supone que me permite "evaluar mi modelo". ¿Cómo lo vuelvo a apagar para entrenar?

Ejemplo de código de entrenamiento usando .eval() .

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

0

model.eval() es una especie de interruptor para algunas capas/partes específicas del modelo que se comportan de manera diferente durante el tiempo de entrenamiento e inferencia (evaluación). Por ejemplo, Dropouts Layers, BatchNorm Layers, etc. Debe desactivarlas durante la evaluación del modelo y .eval() lo hará por usted. Además, la práctica común para evaluar/validar es usar torch.no_grad() junto con model.eval() para desactivar el cálculo de gradientes:

 # evaluate model: model.eval() with torch.no_grad(): ... out_data = model(data) ...

PERO, no olvide volver al modo de training después del paso de evaluación:

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

0

model.train() model.eval()
Establece el modelo en modo de entrenamiento :

• capas de normalización 1 usan estadísticas por lote
• activa las capas de Dropout 2
Establece el modelo en modo de evaluación (inferencia):

• las capas de normalización usan estadísticas en ejecución
• desactiva las capas de Dropout
Equivalente a model.train(False) .

Puede desactivar el modo de evaluación ejecutando model.train() . Debe usarlo cuando ejecute su modelo como un motor de inferencia, es decir, cuando pruebe, valide y prediga (aunque prácticamente no hará ninguna diferencia si su modelo no incluye ninguna de las capas que se comportan de manera diferente ).


  1. por ejemplo, BatchNorm , InstanceNorm
  2. Esto incluye submódulos de módulos RNN, etc.
over 4 years ago · Santiago Trujillo Denunciar

0

model.eval es un método de torch.nn.Module :

eval()

Establece el módulo en modo de evaluación.

Esto tiene algún efecto solo en ciertos módulos. Consulte la documentación de módulos particulares para obtener detalles de sus comportamientos en el modo de capacitación/evaluación, si se ven afectados, por ejemplo, Dropout , BatchNorm , etc.

Esto es equivalente a self.train(False) .

El método opuesto es model.train explicado muy bien por 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