web-dev-qa-db-fra.com

Quelle est la signification de la fonction eval () dans le module torch.nn

Le commentaire officiel montre que "cela n'a d'effet que sur des modules tels que Dropout ou BatchNorm." Mais je ne comprends pas sa mise en œuvre.

14
闫伯元

Dropout et BatchNorm (et peut-être certains modules personnalisés) se comportent différemment pendant la formation et l'évaluation. Vous devez indiquer au modèle à quel moment passer en mode eval en appelant .eval() sur le modèle.

Cela définit self.training à False pour chaque module du modèle. Si vous implémentez votre propre module qui doit se comporter différemment pendant la formation et l'évaluation, vous pouvez vérifier la valeur de self.training ce faisant.

15
litesaber