SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Pratik Caffe Kullanımı
Birol Kuyumcu
Github
Linkedin
E-mail
Blog
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 ...Buildx64Relase dizini altında bulunur
● Python desteği için ...Buildx64Releasepycaffe dizinindeki caffe dizinini
pythonLibsite-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 Modeller
Caffe - 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

Weitere ähnliche Inhalte

Ähnlich wie Pratik caffe

Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with NetduinoBilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduinosipahigokhan
 
Java me kursu-pendik
Java me kursu-pendikJava me kursu-pendik
Java me kursu-pendiksersld61
 
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ BGA Cyber Security
 
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli ÇözümlerWordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli ÇözümlerSalih Özdemir
 
Weblogic performance tips&tricks
Weblogic performance tips&tricksWeblogic performance tips&tricks
Weblogic performance tips&tricksZekeriya Besiroglu
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1kaan verdioglu
 
Java me kursu-bagcilar
Java me kursu-bagcilarJava me kursu-bagcilar
Java me kursu-bagcilarsersld61
 
Büyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1lBüyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1lHakan Ilter
 
Azure Sanal Makineler
Azure Sanal MakinelerAzure Sanal Makineler
Azure Sanal MakinelerMustafa
 
Java 9 Project Jigsaw
Java 9 Project JigsawJava 9 Project Jigsaw
Java 9 Project JigsawRahman USTA
 
Edb kurumsal dunyaicinoneriler.101614
Edb kurumsal dunyaicinoneriler.101614Edb kurumsal dunyaicinoneriler.101614
Edb kurumsal dunyaicinoneriler.101614EDB
 
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...atifceylan
 
C sharp-egitim-cd-si
C sharp-egitim-cd-siC sharp-egitim-cd-si
C sharp-egitim-cd-sisersld30
 
Xsteel egitim-seti
Xsteel egitim-setiXsteel egitim-seti
Xsteel egitim-setisersld85
 
Java me kursu-catalca
Java me kursu-catalcaJava me kursu-catalca
Java me kursu-catalcasersld61
 
Java me kursu-gungoren
Java me kursu-gungorenJava me kursu-gungoren
Java me kursu-gungorensersld61
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziHakan Ilter
 
Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerErcan Pinar
 

Ähnlich wie Pratik caffe (20)

Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with NetduinoBilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
Bilge Adam İzmir - Gokhan Sipahi - Robotic Programming with Netduino
 
Java me kursu-pendik
Java me kursu-pendikJava me kursu-pendik
Java me kursu-pendik
 
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
 
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli ÇözümlerWordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
 
Weblogic performance tips&tricks
Weblogic performance tips&tricksWeblogic performance tips&tricks
Weblogic performance tips&tricks
 
yazılımmuh10.pptx
yazılımmuh10.pptxyazılımmuh10.pptx
yazılımmuh10.pptx
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1
 
Java me kursu-bagcilar
Java me kursu-bagcilarJava me kursu-bagcilar
Java me kursu-bagcilar
 
Sistem İyileştirme Programları
Sistem İyileştirme ProgramlarıSistem İyileştirme Programları
Sistem İyileştirme Programları
 
Büyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1lBüyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1l
 
Azure Sanal Makineler
Azure Sanal MakinelerAzure Sanal Makineler
Azure Sanal Makineler
 
Java 9 Project Jigsaw
Java 9 Project JigsawJava 9 Project Jigsaw
Java 9 Project Jigsaw
 
Edb kurumsal dunyaicinoneriler.101614
Edb kurumsal dunyaicinoneriler.101614Edb kurumsal dunyaicinoneriler.101614
Edb kurumsal dunyaicinoneriler.101614
 
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
DBA ve Geliştiriciler İçin Başarımı Artırıcı Öneriler - PostgreSQL Konferansı...
 
C sharp-egitim-cd-si
C sharp-egitim-cd-siC sharp-egitim-cd-si
C sharp-egitim-cd-si
 
Xsteel egitim-seti
Xsteel egitim-setiXsteel egitim-seti
Xsteel egitim-seti
 
Java me kursu-catalca
Java me kursu-catalcaJava me kursu-catalca
Java me kursu-catalca
 
Java me kursu-gungoren
Java me kursu-gungorenJava me kursu-gungoren
Java me kursu-gungoren
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri Analizi
 
Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-scheduler
 

Pratik caffe

  • 1. Pratik Caffe Kullanımı Birol Kuyumcu Github Linkedin E-mail Blog
  • 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
  • 3.
  • 6. CNN
  • 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
  • 14. Ağ Model Dosyası ● Katmanlar Halinde yazılır
  • 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
  • 19. Uygulama ● Problem Seçimi ● Veri Seti Hazırlama ● Model Seçimi ve Düzenleme ● Eğitim ● Test
  • 22. Problem Seçimi ● Elbise Rengi Tanıma
  • 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
  • 27. Test ● Classification – ipython notebook - ● Test.py ● Gui/colorRec.py
  • 28. Test
  • 29. Son