Model.train () hakkında kafa karışıklığı [duplicate]

Sep 07 2020

Ben pytorch konusunda acemiyim. Github'da bazı derin öğrenme modellerinde model.train () olduğunu ve bazılarının olmadığını gördüm, ancak normal şekilde çalışabilirler. Model.train () gerekli olup olmadığını bilmek istiyorum. etkisi nedir?

Yanıtlar

1 hkchengrex Sep 07 2020 at 13:06

trainmod veya evalmod yalnızca eğitim / test sırasında asimetrik davranan modülleriniz (örn. BatchNorm, Dropout) olduğunda önemlidir. Gradyan birikimini hiç etkilemediğini vurgulamak isterim. Asimetrik modüller ile bile, bir model evalmodda mükemmel şekilde eğitilebilir . Bazıları bunu, önceden eğitilmiş bir ImageNet modeli kullanarak eğitimde bellekten tasarruf etmek için yapar.

Asimetrik modülünüz yoksa, hiç önemli değil.

Varsayılan olarak, tüm modüller ile başlar training=True.

2 gspr Sep 07 2020 at 12:25

trainve muadili eval, modeli eğitim ve değerlendirme modu arasında değiştirir.

Eğitim modunda, izlenen gradyanlar genellikle modelin her değerlendirmesinde güncellenir. Bu, eğitim için kullanılan gradyan inişini gerçekleştirmek için gereklidir. Değerlendirme modunda değiller.