YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 2: Pratik caffe

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

Page 3: Pratik caffe
Page 4: Pratik caffe

Convolution

Page 5: Pratik caffe

Yapay Sinir Ağı

Page 6: Pratik caffe

CNN

Page 7: Pratik caffe

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

Page 8: Pratik caffe

●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

Page 9: Pratik caffe

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

Page 10: Pratik caffe

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ı

Page 11: Pratik caffe

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

Page 12: Pratik caffe

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.

Page 13: Pratik caffe

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

Page 14: Pratik caffe

Ağ Model Dosyası

● Katmanlar Halinde yazılır

Page 15: Pratik caffe

Ağ Model Dosyası

● Temel Katman Tipleri– Data

– Convolution

– Pooling

– Aktivasyon● Sigmoid● ReLU

– InnerProduct

– Loss

Page 16: Pratik caffe

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

Page 17: Pratik caffe

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

Page 18: Pratik caffe

Hazır ModellerCaffe - Zoo

Page 19: Pratik caffe

Uygulama

● Problem Seçimi● Veri Seti Hazırlama● Model Seçimi ve Düzenleme● Eğitim● Test

Page 20: Pratik caffe

Problem Seçimi

● Renk Tanıma

Page 21: Pratik caffe

Problem Seçimi

● Renk Tanıma

Page 22: Pratik caffe

Problem Seçimi

● Elbise Rengi Tanıma

Page 23: Pratik caffe

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

Page 24: Pratik caffe

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

Page 25: Pratik caffe

●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

Page 26: Pratik caffe

Eğitim

● Solver dosyasını düzenleyin● Caffe programını çalıştırın● Loss ve Accuracy değerlerini takip edin

Page 27: Pratik caffe

Test

● Classification – ipython notebook -● Test.py● Gui/colorRec.py

Page 28: Pratik caffe

Test

Page 29: Pratik caffe

Son