pratik caffe
TRANSCRIPT
Pratik Caffe KullanımıBirol Kuyumcu
GithubLinkedinE-mailBlog
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
Convolution
Yapay Sinir Ağı
CNN
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
●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 ...\Build\x64\Relase dizini altında bulunur
● Python desteği için ...\Build\x64\Release\pycaffe dizinindeki caffe dizinini
python\Lib\site-packages dizinine kopyalayın
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
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ı
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
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.
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
Ağ Model Dosyası
● Katmanlar Halinde yazılır
Ağ Model Dosyası
● Temel Katman Tipleri– Data
– Convolution
– Pooling
– Aktivasyon● Sigmoid● ReLU
– InnerProduct
– Loss
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
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
Hazır ModellerCaffe - Zoo
Uygulama
● Problem Seçimi● Veri Seti Hazırlama● Model Seçimi ve Düzenleme● Eğitim● Test
Problem Seçimi
● Renk Tanıma
Problem Seçimi
● Renk Tanıma
Problem Seçimi
● Elbise Rengi Tanıma
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
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
●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
Eğitim
● Solver dosyasını düzenleyin● Caffe programını çalıştırın● Loss ve Accuracy değerlerini takip edin
Test
● Classification – ipython notebook -● Test.py● Gui/colorRec.py
Test
Son