Kolay Bir Şekilde DL Modeli Eğitmek : Deep Learning Training GUI
İzlemeniz gereken adımları kısaca anlatmam gerekirse:
Deep-Learning-Training-GUI reposunu indir.
Klasörün içine gir.
Terminale: pip install requirements.txt yazarak gerekli olan kütüphaneleri yükleyeceksiniz.
Veri setinizin bulunduğu klasörü aşağıda gösterildiği şekilde düzenlemeniz gerekmektedir. “flower_photos” örneğinde olduğu gibi kaç tane sınıfınız (class) varsa o kadar klasör oluşturmanız gerek ve fotoğrafları bu klasörlerde tutmanız gerekmektedir (Bkz: Daisy adında bir sınıf, Dandelion adında bir sınıf; her bir klasörün altında yaklaşık 600 görsel bulunmaktadır). Görseller jpg formatta olması gerek. Format kontrolünü sonraki versiyona bıraktım.
│ ├── img_1.jpg/png
│ └── img_2.jpg/png
4. Yukarıdaki işlemleri tamamladıysanız artık programı çalıştırabilirsiniz. Terminale python app.py yazmanız durumunda programa tarayıcınız ile localhost:5000 üzerinden ulaşabilirsiniz (Görsel 1).
Görsel 1: Giriş sayfası
5. Eğitim işlemine başlamak için Training sayfasına gitmeniz gerekmektedir. Training sayfası açıldığında doldurmanız gereken alanlar şu şekilde (Görsel 2):
Görsel 2: Training sayfası — parametre seçimi.
6.Veri setinizin bulunduğu dosya yolunu girmeniz gerekmektedir. Örnek vermek gerekirse datasets klasörü içinde flower_photos klasörünü seçmek istiyorum ve form elemanına şu şekilde yazacağım: datasets/flower_photos
7. Split the dataset kısmına ise eğitim verisinin yüzde kaçını test olarak kullanacağımızı belirtmemiz gerek.
8. Pre-trained Models — Şu anda sadece MobileNetV2 var fakat ilerleyen versiyonlarda buradan hazır eğitilmiş modeli seçerek kolay bir şekilde Fine-Tuning yapabileceksiniz.
9. CPU/GPU — GPU’da mı yoksa CPU’da mı eğitmek istediğinizi belirtmeniz gerek (İlk versiyon da otomatik olarak GPU üzerinden eğitim işlemi gerçekleşecek).
10. Number Of Classes — Burası çokomelli. Yine flower_photos örneğinden gideceğim. Flower_photos klasörü altında 5 ayrı klasör vardı. Bu işte bizim sınıf sayımızdır. Kendi veri setinizi eğitirken kaç tane sınıfınız varsa buraya o kadar klasör oluşturmanız gerekmektedir.
11. Batch Size — Eğitim örneklerinin, eğitim ağına kaçar şeklinde yükleneceğini belirler. Eğer 1080 Ti veya daha iyi bir ekran kartına sahipseniz burayı 64 ya da 128 olarak belirleyebilirsiniz. Batch Size arttıkça modelin öğrendiği gürültü de azalacaktır.
12. Epoch — Eğitim verilerin model ağına gösterilme sayısıdır. Yani 10 Epoch yaptığınız takdirde eğitim verileri 10 kez model ağına gösterilecek.
Yukarıdaki adımları tamamladıysanız Start Training butonuna basarak eğitimi başlatabilirsiniz. Butona bastıktan sonra şöyle bir sayfaya yönlendirileceksiniz (Görsel 3):
Görsel 3: Eğitim sayfası
13. Geliştirdiğim uygulamanın bir diğer güzel özelliği, terminalden bir komut girmeden TensorBoard’ı açıp eğitim durumunuzu takip edebilirsiniz. İlerleyen versiyonda bu ekranda doğruluk ve kayıp yitim oranını anlık olarak görebileceksiniz.
14. Eğitim işleminiz bittiği takdirde yukarıdaki menüde yer alan Predict’e tıklayabilirsiniz (Görsel 4).
Görsel 4: Tahmin (Predict) sayfası.
15. Bu kısımda test etmek istediğiniz görüntüyü static klasörüne atıp seçmeniz gerekiyor. Daha sonrasında kaydedilen modeli models klasörün içinden seçebilirsiniz. En son olarak da veri setimizin bulunduğu klasörü belirtmemiz gerek. Bunların hepsini yaptıktan sonra Predict Your Model butonuna tıklayıp sonucu görebilirsiniz (Görsel 5).
Görsel 5: Result (Sonuç) sayfası.
İlerleyen zamanlarda bu uygulamayı çok daha detaylı hale getirmeyi planlıyorum. İkinci versiyon çok daha iyi olacağını inanıyorum.
Bu projeyi hobi olarak geliştirdiğimi hatırlatır, herhangi bir hata ile karşılaşırsanız yardımcı olurum. Eksik gördüğünüz kısımlar varsa Twitter’dan kesinlikle bana bildirin, sevinirim.
Bu uygulamayı geliştirirken NVIDIA’nın DIGITS uygulamasından esinlenerek geliştirdim. Onlarınki tabi ki çok daha iyi ama artık güncel değil ve eskide kaldı maalesef.
Linkedln: Mustafa Mert Tunalı
MRI Görüntüleri Üzerinden Beyin Tümörü Tespiti — Bölüm 1 (U-Net)
deepAIm — Radyoloji’de Yapay Zeka Öncü Toplantısı Notları
Previous Post:Demystifying Object Detection using Deep Learning
Next Post:How Reasoning Emerges from Intuition