2. Caffe Nedir
● Convolution Architecture For Feature Extraction
● Derin öğrenme kütüphanesi
● Açık kaynak kodlu & Geniş bir camiası var
● C++ & CUDA / Python / Matlab
● Program Yazmadan : Komut Satırından Kullanım
● Program Yazmadan : GUI DIGITS ile Kullanım
● Çoklu GPU desteği
● Hazır Modeller ( Ağ yapısı + Eğitilmiş )
● Windows Desteği
7. Windows’da Kurulum
● Önce Yüklenecekler ;
●
Visual Studio
● CUDA ve cuDNN kütüphanleri ( NVIDIA)
●
Python – Anaconda 2.7 64 bit -
●
Windows Uyumlu Dağıtım Seç
●
Caffe-Builder :
●
github.com/willyd/caffe-builder
●
Resmi Windows dalı : Microsoft öncülüğünde
●
github.com/BVLC/caffe/tree/windows
● Derlenmiş Bul
8. ● Resmi Windows Kurulumu
● Visual Studio 2013 ve Cuda 7.5 ‘i kurun
● Resmi Windows dalını harddiskinize indirin
● CommonSettings.props.example -> CommonSettings.props
● Python dizninizi kendi Python kurulumunuza göre düzeltin
<PythonDir>C:Anaconda2</PythonDir>
● CuDNN i indirin ve bir dizine açın yolunu belirtin
<CuDnnPath>C:cuDNN</CuDnnPath>
● Caffe.sln dosyasını açın ve Relase olarak Derleyin
● komut satırı programlar ...Buildx64Relase dizini altında bulunur
● Python desteği için ...Buildx64Releasepycaffe dizinindeki caffe dizinini
pythonLibsite-packages dizinine kopyalayın
9. Komut Satırı Programlar (Caffe)
Caffe <komut> <parametreler>
Komutlar :
train : Eğitmek yada eğitilmiş model üzerinde ince ayar
için kullanılır
test : Eğitilmiş modeli test edip performansını hesaplar
device_query : GPU donanımı hakkında bilgi verir
time : Modelin çalışma zamanını ölçüp raporlar
10. Komut Satırı Programlar (Caffe)
●
Parametreler
-gpu : İşlemlerin gpu üzerinden yapılacağını bildirir
-iterations : iterasyon sayısını ayarlar varsayılan değer 50
-model : model dosyasının adını verirsiniz ( prototxt )
-snapshot : yarıda kesilmiş eğitime daha önceden eğitim esnasında kaydedilmiş
“.solverstate” uzantılı dosyayı kullanarak devam etmek için kullanılır
-solver : .protoxt uzantılı eğitim parametrelerini yazdığınız dosyanın adı
-weights : Eğitim transferi için daha önceden eğitilmiş olan .caffemodel uzantılı
dosya adı
11. Komut Satırı Programlar
(Convert_imageset)
convert_imageset [parametreler] ana_dizin / dosya_listesi veritabanı_adı
-backend : veritabanı türü halen iki seçenek var { lmdb, leveldb } ön tanımlı "lmdb"
-encode_type : veritabanına atılacak verilerin kodlanma metodu ( 'png','jpg',...) gibi
belirtilmezse olduğu gibi aktarılır
-gray : mantıksal değişken bool eğer true ise görüntü siyah beyaz olarak aktarılır
belirtilmediğinde olduğu gibi
-resize_height : Görüntülerin sabit bir yüksekliğe çevirir
-resize_width : Görüntülerin sabit bir genişliğe çevirir
-shuffle : Listedeki sıralmayı karıştırır
12. Komut Satırı Programlar
( compute_image_mean )
compute_image_mean [parametreler] Veritabanı Adı [Ortalama
Görüntü Dosyası Adı]
Veritabanındaki görüntüler için bir ortalama görüntü - mean image -
hesaplar ve kaydeder.
compute_image_mean data-train data-mean.binaryproto
compute_image_mean data-train data-mean.npy
Gibi veritabanı veritabanı türü halen iki seçenek var {lmdb, leveldb} ön
tanımlı "lmdb" diğer seçenek için -beckend “leveldb” ile beritmeniz
gerekiyor.
13. Caffe Dosyaları
● Ağ Model Dosyası : Ağ yapısını gösteren
prototxt formatında dosyalardır.
– Eğitim ve kullanım için ayrı ayrı olur
● Solver Dosyası : Eğitim parametrelerinin
ayarlandığı prototxt formatında dosyalardır.
● Ağırlık Dosyası : Eğitim sırasında ve
sonucunda oluşturulan ağın ağırlıklarının
tutulduğu uzantısı .caffemodel olan
dosyalar
15. Ağ Model Dosyası
● Temel Katman Tipleri
– Data
– Convolution
– Pooling
– Aktivasyon
● Sigmoid
● ReLU
– InnerProduct
– Loss
16. Solver Dosyası
●
net : Ağ Model dosyasının adı prototxt formatında
●
test_interval: Kaç iterasyonda bir test uygulanacağını belirler
● base_lr : Başlangıç Öğrenme hızı
● lr_policy: Öğrenme Hızı değişim fonksiyonu
● momentum: Eğitim esnasında lokal minimumda takılmama
● weight_decay: Yapay Sinir Ağlarında yapının ezbere kaymasını önleme amaçlı
● iterations display: Eğitim durum gösterme işlemi kaç iterasyonda bir onu belirler
●
max_iter : Maksimum iterasyon sayısını ayarlar
●
snapshot: Kaç iterasyonda bir kayıt yapılacak (.caffemodel & .solverstate )
● solver mode: Eğitim için işlem modu cpu yada gpu
● solver_type : Eğitim için kullanılacak eğitim metodu çözücü tipi
17. Hazır Modeller
Model Adı Top 1
Accuracy %
Top 5
Accuracy %
Iterasyon Not
AlexNet 57.1 80.2 360,000 2012
CaffeNet 57.4 80.4 310,000
GoogleNet 68.7 88.9 2,400,000 2014
VGG 76.3 92 2014
ResNet 80.62 95.5 2015
23. Veri Seti Hazırlama
● Sınıfları belirleyin – 12 Renk -
● Her Sınıf için yeter miktarda veri toplayın
Ortalama 500 adet resim toplandı
● Çalışma koşullarına uygun çeşitlilikte olsun
● Doğru olsun
24. Veri Seti Hazırlama
● Eğitim ve Test için liste hazırlamak
– CaffeUtility.py
● Listelerden veritabanına dönüşüm
– convert_imageset
● Ortalama Görüntü Oluşturma
– compute_image_mean
25. ● Model Seçimi ve Düzenleme
● Hazır Modellerden Birini seçin
– CaffeNet i seçtik
● Ağ Model Dosyasını düzenle
– Veri giriş dosyalarını güncelle
– Ortalama Görüntü adını güncelle
– Çıkış Sayısını Uygulamamıza göre -12 -düzenle
● Eğitim Transferi
– Çıkış katman Öğrenme hızını artır
– Ön katmanların Öğrenme hızlarını kıs
– Ağırlık Dosyasını temin et
26. Eğitim
● Solver dosyasını düzenleyin
● Caffe programını çalıştırın
● Loss ve Accuracy değerlerini takip edin