TensorFlow ile Sınıflandırıcı Eğitimi ve Görüntü Sınıflandırma

Öncelikle sınıflandırıcı eğitimine girmeden kullanacağımız kütüphaneye ve bilinmesi gereken bazı kavramlara bakalım.

TensorFlow Nedir?

TensorFlow , veri akış grafikleri kullanarak sayısal hesaplama için kullanılan açık kaynak kodlu bir derin öğrenme kütüphanesidir. Grafikteki düğümler, matematiksel işlemleri temsil ederken, grafik kenarları aralarında iletilen çok boyutlu veri dizilerini (tensörler) temsil eder. Esnek mimari, hesaplamayı tek bir API ile bir masaüstü, sunucu veya mobil cihazdaki bir veya daha fazla CPU’ya veya GPU’ya dağıtmanıza olanak tanır. TensorFlow başlangıçta, makine öğrenimi ve derin sinir ağları araştırması yürütmek amacıyla Google’ın Google Brain ekibi tarafından geliştirildi. Alternatifleri Caffe, Torch, Kerras, Theano, deeplearning4j vb.

Sınıflandırıcı Nedir?

Sınıflandırma bire bir olarak kelime anlamı ile örtüşmektedir. Doğadaki canlılar çeşitli özelliklerine;dış görünüş, organ yapısı, akrabalık, anatomik benzerlik vb. göre sınıflandırırlar. Bizim sınıflandırma olarak bahsettiğimiz şeyde aslında budur. Somut bir örnek verecek olursak dünya üzerindeki ülkelerin kendine özgü özellikleri vardır, yani bir ülkenin bayrağını gördüğünüzde milli marşını duyduğunuzda bu ülkeyi diğer tüm ülkelerden ayırır ve adını söyleyebilirsiniz. Bilgisayar bilimindede sınıflandırıcılar işte böyle çalışımaktadırlar. Elinizde bir veri seti (data set) bulunur ve bu veri setindeki veriler farklı kümeler oluştururlar daha sonra bu veri seti dışında olan bir eleman geldiğinde bunun özelliklerine bakararak ilgili küme içerisine yerleştirirsiniz. Bir yazılım geliştiriyoruz ve bu yazılımın bizim gösterdiğimiz bir hayvanın ne olduğunu bilmesi istiyorsak başvuracağımız yöntemlerden bir tanesi sınıflandırıcı olacaktır. Daha önceden elimizde bulunan kümelenmiş hayvan resimleri sayesinde yeni bir eleman geldiğinde bunun hangi kümenin elamanı olabilceğini  saptayabiliyor olacağız.

TensorFlow Kurulumu

TensorFlow ile geliştirme yapabilmek için Python sürümünüzün 3.5.x veya üzerinde olması gerekiyor. Kurulumu ise oldukça basit pip ile aşağıdaki şekilde kurabilirsiniz. Bu kütüphanelerin GPU üzerinde de çalışabildiğini söylemiştik, eğer NVIDIA bir GPU ya sahipseniz GPU versiyonunu kurabilirsiniz. AMD  GPU üzerinde çalıştırmak bazı opensource paraleleştirme küğtüphaneleri ile mümkün uğraşmak isteyenler kaynak kodu indirip derleyebilirler. TensorFlow’u doğrudan Linux, MACOS ve Windows üzerine kurabilirsiniz. Github reposunda Android için de bir örnek proje mevcut mobil geliştirme yapmak istiyorsanız ona göz atabilirsiniz.

CPU Sürümü

GPU Sürümü

Detaylı bilgi almak için buradaki dökümanına göz atabilirsiniz.

TensorFlow ile geliştirme yapmak için daha kullanışlı bir yol ise Docker kullanmaktır. TensorFlow ekibi tarafından bir Docker image’ı hazırlanmıştır, bu sayede sanal makine üzerinde her şey hazır bir şekilde rahatlıkla testlerinizi yapabilirsiniz. Docker nedir diye merak ediyorsanız bu 10 dakikalık bu videoya göz atabilirsiniz ve not olarak ekleyeyim Docker Windows platformunda (Windows 10 pro x64) çalışabilmektedir.

(Docker üzerinde çalışmayacaksanız bu adımları atlayabilirsiniz.)

Docker kurulumunu yaptıysanız, tensor flow için hazırlanan image’ı kurarak başlayalım. Öncelikle Windows PowerShell’i açalım ve;

image indirme işlemi tamamlandıktan sonra aşağıdaki docker komutu ile başlatalım;

bu adımdan sonra image ayağa kalkmış olacaktır.

Bundan sonraki adımlar sınıflandırıcı eğitimini ve kullanımını anlatacaktır.

Veri Setinin Hazırlanması

Testlerde sıkça kullanılan örnek veri setini indirebilirsiniz. Bu veri seti içerisinde çeşitli kategorilerde çiçek resimleri bulunmaktadır (papatya, gül vb.).

http://download.tensorflow.org/example_images/flower_photos.tgz

Docker üzerinde bu veri setini indirmek için ise curl kullanabilirsiniz. ve indirdiğimiz veri setini aynı dizine çıkartalım.

Eğitim için gerekli her şey Tensorflow example içerisinde mevcut (tensorflow/examples/image_retraining/), git reposundan son halini almak için

image dir olarak veri setini dizinini veriyoruz, model ve etiketlerin oluşturulmasını istediğiniz dizini belirtin.

Eğitim işlemi sonunda model kullanıma hazır hale gelecektir.

Model Nasıl Kullanılır?

output_graph.pb model dosyası tf_files/output_labels.txt ise model tanımlarını içeren etiketler yani kategorilerdir.

Yukarıdaki kaynak kod ile modelimizi kullanarak tahmin değerini alabilmekteyiz, bu kodu tensorflow örnekleri arasında train dizini altında da bulabilirsiniz.

Kullanmak içinde;

Sonuç olarak size skor listesi döndürecektir.

 


Ayrıca Bakınız:

  1. https://www.tensorflow.org/get_started/get_started
  2. http://derindelimavi.blogspot.com.tr/2017/03/semantik-bolutleme-ve-fcn.html
  3. http://www.bilgisayarkavramlari.com/2013/03/31/siniflandirma-classification/
  4. https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/

 





Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir