Pytorch logra diferentes resultados para entrenamiento y prueba

Pytroch logra diferentes resultados para entrenamiento y prueba

Hemos dicho antes que model.train()él model.eval()es propicio para la realización de BN y deserción. ¿Por qué es esto?

¡Porque BN y Dropout tienen operaciones diferentes para entrenamiento y prueba! Por eso, debemos distinguir entre entrenamiento y prueba.

Antes de entrenar o probar el código, estipulamos:

  • Entrenamiento para agregarmodel.train()
  • Prueba para agregarmodel.eval()

Esto se debe a que el trainingatributo may de tal modelo está establecido trueo false. De esta forma sabremos si el modelo ha sido entrenado.

class Model(nn.Module):
    def __init__(self):
        pass
    def isTraining(self):
        if self.training:
            return True
        else:
            return False
        
model = Model()
model.train()
print(model.training)
model.isTraining()

model.eval()
print(model.training)
model.isTraining()
result:
True
True
False
False

Supongo que te gusta

Origin blog.csdn.net/qq_43477218/article/details/115307042
Recomendado
Clasificación