Deep Learning Modellerinde Kayıt Etmeniz Gereken 3 Önemli Bileşen

Sefa İşci
KaVe

--

Bugün sizlere pytorch ile eğitmiş olduğunuz deep learning modellerini nasıl ideal bir biçimde kayıt edip sonrasında kullanmanız hakkında bilgi vereceğim. Fakat iyi anlayabilmeniz için önceden pytorch ile deep learning modelleri geliştirmiş olmanızda fayda olduğunu düşünüyorum.

Modellerimizi kayıt ederken 3 ayrı önemli parça bulunmaktadır. Bunun haricinde kullanıcının keyfine göre eklediği parametreler ve/veya hiperparametreler de olabilir.

1) model

Burada modelin kendisini kayıt etmektesiniz (çok fazla yer kaplamaz). Modeli class olarak sıfırdan yazmak gibi de düşünebilirsiniz fakat bu parçayı kayıt ettiğinizde bir daha hiç uğraşmak zorunda kalmayabilirsiniz. Modelin kendisini kayıt etmenizin çok önemli olduğunu söyleyebilirim

2) model.state_dict()

model.state_dict() ile modelin ağırlıklarını kayıt etmekteyiz. Modelimizi tanımladıktan sonra modelimizin içerisinde kayıt etmiş olduğumuz ağırlıkları modeli tanımladıktan sonra yüklüyoruz ve eğitime kaldığı yerden devam ediyor ya da prediction~test için kullanıma hazır halde getirmiş oluyoruz.

3) optimizer.state_dict()

Optimizer’ın içerisinde de gradyenlerin ortalama ve varyans gibi istatistiki bilgileri de bulunmakta. Bu nedenden ötürü optimizer’ı da state_dict() ile kayıt etmemiz gerekmekte. Bu durum sadece eğitim için geçerli, ürün olarak kullanılacağı zaman (test~prediction) optimizer’ı kayıt etmenize gerek yok.
Bu linki inceleyerek de bu durumu valide edebilirsiniz.

Modelin 3 ayrı önemli parçacığını sizlere elimden geldiğince kısa bir biçimde açıkladım. Bu linke de bakarak .state_dict() hakkında bilgi sahibi olabilirsiniz.

Şimdi kayıt etmek için kullandığımız koda bakalım.

Yüklemek için kullandığımız kodu da aşağıya bırakıyorum.

Umarım faydalı olmuşumdur :)
Okuduğunuz için teşekkürler!

--

--