top of page

-  Derin Öğrenme  -

- ( Deep Learning ) -

                                                                            

Endüstri ve akademik çevrelerdeki veri bilimciler görüntü sınıflandırma, video analizi, konuşma tanıma ve doğal dil öğrenme süreci dahil olmak üzere çeşitli uygulamalarda çığır açan gelişmeler elde etmek üzere makineyle öğrenmede GPU’ları (Grafik İşlemci Ünitesi) kullanmaktadır. Özellikle, büyük miktarlarda etiketlenmiş eğitim verilerinden özellik saptama yapabilen sistemler oluşturmak için ileri teknoloji, çok seviyeli “derin” sinir ağların kullanılması olan Derin Öğrenme, önemli derecede yatırım ve araştırmanın yapıldığı bir alandır.

Makineyle öğrenme yıllardır kullanılan bir yöntem olmasına rağmen, iki yeni yeni trend makineyle öğrenmenin yaygın bir şekilde kullanılmasına yol açmıştır: çok büyük miktarlarda eğitim verisi ile GPU hesaplama ile elde edilen güçlü ve verimli paralel hesaplama. GPU’lar, çok daha büyük eğitim setleri kullanarak bu derin nöral ağları çok daha kısa sürelerde ve çok daha az veri merkezi altyapısı kullanarak eğitmek için kullanılmaktadır. GPU’lar aynı zamanda, çok daha fazla veri hacmi ve daha az güç ve altyapı destekleyerek, bulut içinde sınıflandırma ve tahmin yapmak için bu eğitilmiş makineyle öğrenme modellerini çalıştırmak için kullanılmaktadır.

Makineyle öğrenme için GPU’ları kullanmaya ilk başlayanlar arasında en büyük web ve sosyal medya şirketlerinin yanı sıra, veri bilimi ve makineyle öğrenme alanında çalışan üst düzey araştırma kuruluşları bulunmaktadır. Binlerce hesaplama çekirdeği ve tek başına çalıştırılan CPU’lar (Merkezi İşlem Birimi) ile karşılaştırıldığında 10 ile 100 kat uygulama performansı sunan GPU’lar, veri bilimcilerin büyük verilerin işlenmesinde tercih ettikleri işlemci olmuştur.

GPU’lar ile önceden kaydedilen konuşmalar veya multimedya içerikleri çok daha hızlı bir şekilde yazıya geçirebilmektedir. Carnegie Mellon Üniversitesi’nden Profesör Ian Lane yürüttüğü çalışmalarında CPU uygulaması ile karşılaştırıldığında, GPU’ların 33 kata kadar daha hızlı tanıma yaptığını ortaya koymuştur.

TensorFlow Nedir ?

TensorFlow, makine öğrenmesi ve derin sinir ağlarında kullanılmak üzere Google’s Machine Intelligence araştırma organizasyonu tarafından geliştirilmiş açık kaynak yazılım kütüphanesidir.

Tensorflow, birçok API sunmaktadır. En alt seviyeli API, TensorFlow Core olarak isimlendirilmektedir. Daha üst seviyedeki API’ler, TensorFlow Core’un üzerine kurulmaktadır.

Birçok derin öğrenme kütüphanesi olmasına rağmen TensorFlow’u diğerlerinden ayıran bazı özellikler şöyle sıralanabilir:  

  • Google gibi büyük bir şirket tarafından geliştirilmeye devam edilmektedir.

  • GPU ve CPU üzerinde işlem yapabilme kabiliyetine sahiptir.

  • GPU destekli olması işlemlerin daha hızlı yapılmasını sağlamaktadır.

  • Daha iyi görselleştirilme kabiliyetine sahiptir.

Tensor Nedir ?

Tensor, TensorFlow’daki en temel veri birimidir. Tensor, herhangi bir boyuta sahip dizi şeklindedir. Bir tensorun boyutu rank olarak adlandırılmaktadır. 

TensorFlow ' Merhaba Dünya '

Herhangi bir bilgisayar dilinde yazmayı öğrendiğimiz ilk kod, ' Merhaba dünya ' dır. Burada geleneği sürdürüyoruz ve ' Merhaba dünya ' kodu ile başlıyoruz. TensorFlow yüklememizi doğrulamak için önceki bölümde kullandığımız kod şöyledir:

  1.  import tensorflow as tf

  2.  message = tf.constant('Derin Sinir Ağları'nın heyecan verici dünyasına hoş geldiniz!')

  3.  with tf.Session() as sess :   

  4.      print(sess.run(message).decode())

    İnceleme : 

1. import tensorflow " Bu TensorFlow kütüphanesini içe aktarır ve harika özelliklerini kullanmamızı sağlar.

                       

                 import tensorflow as tf

2. Yazdırmak istediğimiz mesaj sabit bir karakter dizisi olduğundan " tf.constant  " kullanıyoruz :

                  message = tf.constant('Derin Sinir Ağları'nın heyecan verici dünyasına hoş geldiniz!')

3. Graf elemanını çalıştırmak için, " with " kullanarak oturumu ( Session) tanımlamalıyız ve " run " kullanarak oturumu çalıştırmalıyız :

                 with tf.Session() as sess:
     

                 print(sess.run(message).decode())

4. Çıktı, bilgisayar sisteminize ve işletim sisteminize bağlı olarak, kodun makineniz için derlendiğinde daha hızlı çalışabileceğini ileri süren bir dizi uyarı mesajı (W) içerir

    The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations. 
    The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations.  

     The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations. 

     The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations. 

     The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations. 

     The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations. 

     The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.

     The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.

5. TensorFlow GPU ile çalışıyorsanız, kullanılan cihazların ayrıntılarını veren bilgilendirici mesajların (I) bir listesini de alırsınız :

Found device 0 with properties:  
     

     name: GeForce GTX 1070 
     

     major: 6 minor: 1 memoryClockRate (GHz) 1.683

pciBusID 0000:01:00.0 
     

     Total memory: 8.00GiB 
     

     Free memory: 6.66GiB 
     

     DMA: 0  
     

     0:   Y  
     

     Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1070, pci bus id: 0000:01:00.0)

6. Sonunda oturumda yazdırmak istediğimiz mesaj:

    Derin Sinir Ağları'nın heyecan verici dünyasına hoş geldiniz!

    Nasıl Çalışmaktadır ? : 

Önceki kod üç ana bölüme ayrılmıştır. Kodumuzun kullanacağı tüm kütüphaneleri içeren içe aktarma (import) bloğu var; mevcut kodda sadece TensorFlow kullanıyoruz. tf ifadesi olarak içe aktarılan tensorflow, tüm TensorFlow sınıflarına, yöntemlerine ve sembollerine Python erişimi sağlar. İkinci blok, graf tanım bölümünü içerir; Burada istenen bilgisayımsal grafımızı oluşturuyoruz. Mevcut durumda, grafımız sadece bir düğümden, "Derin Sinir Ağları'nın heyecan verici dünyasına hoş geldiniz" bayt dizisinden oluşan tensör sabit mesajından oluşuyor. Kodumuzun üçüncü bileşeni, hesaplama grafını Oturum olarak çalıştırıyor; with anahtar kelimeyi kullanarak bir oturum oluşturduk. Son olarak, Oturumda, yukarıda oluşturulan grafı çalıştırıyoruz.

Şimdi çıktıyı anlayalım. Alınan uyarı mesajları, TensorFlow kodunun daha yüksek bir hızda çalışabileceğini söyler, bu da TensorFlow'u kaynaktan yükleyerek elde edilebilir (bunu daha sonra bu bölümde yapacağız). Alınan bilgi mesajları, hesaplama için kullanılan cihazlar hakkında sizi bilgilendirir. Onların her iki mesajı da oldukça zararsızdır, ancak onları görmekten hoşlanmıyorsanız, bu iki satırlı kodu eklemek hile yapacaktır:

  1.  import os
  2.  os.environ['TF_CPP_MIN_LOG_LEVEL']='2'  

Kod, 2. seviyeye kadar tüm mesajları dikkate almamaktır. Seviye 1 bilgi,  2 uyarı ve 3 hata mesajları içindir. Program oluşturulan grafı çalıştırmanın sonucunu yazdırır, graf, session.run () ifadesi kullanılarak çalıştırılır. Graf çalıştırılmasının sonucu, decode yöntemi kullanılarak ilaveten değiştirilen print fonksiyonuna beslenir. Session.run mesajda tanımlanan tensörü değerlendirir. print fonksiyonu, değerlendirmenin sonucunu stdout'a yazdırır:

 

  1.  b 'Derin Sinir Ağları'nın heyecan verici dünyasına hoş geldiniz'
    
Bu, sonucun bir bayt dizisi olduğunu söylüyor. Dizi tırnaklarını ve b (bayt için) kaldırmak için,
decode () yöntemini kullanırız.

    TensorFlow program yapısını anlama : 

TensorFlow, diğer programlama dillerinden çok farklıdır. İlk olarak yaratmak istediğimiz sinir ağının bir planını yapmalıyız. Bu, programı iki ayrı bölüme ayırarak, yani, sayısal grafiğin tanımlanması ve yürütülmesiyle gerçekleştirilir. İlk başta, bu geleneksel programlayıcıya zahmetli görünebilir, fakat bu, TensorFlow'un gücünü, yani çoklu platformlar ve paralel yürütme üzerinde çalışabilme kabiliyeti veren grafik tanımından yürütme grafiğinin bu ayrımıdır.

Hesaplamalı grafik: Hesaplamalı bir grafik, düğüm ve kenarlardan oluşan bir ağdır. Bu bölümde, kullanılacak tüm veriler, diğer bir deyişle, tensör Nesneleri (sabitler, değişkenler ve yer tutucular) ve gerçekleştirilecek tüm hesaplamalar, yani Operasyon Nesneleri (kısaca ops olarak anılacaktır) tanımlanmıştır. Her düğüm sıfır veya daha fazla girişe sahip olabilir, ancak sadece bir çıktı olabilir. Ağdaki düğümler, Nesneleri (tensörler ve İşlemler) temsil eder ve kenarlar, işlemler arasında akan Tensörlerdir. Hesaplama grafiği, sinir ağının planını tanımlar, ancak içindeki Tensörler henüz onlarla ilişkili bir değere sahip değildir.

Bir hesaplama grafiği oluşturmak için, gerçekleştirmemiz gereken tüm sabitleri, değişkenleri ve işlemleri tanımlarız. Sabitler, değişkenler ve yer tutucuları bir sonraki tarifte ele alınacaktır. Matematik işlemlerin matris manipülasyonları için tarifi ayrıntılı olarak ele alınacaktır. Burada, iki vektörü eklemek için bir grafiği tanımlamak ve yürütmek için basit bir örnek kullanarak yapıyı tanımlarız.

Grafiğin yürütülmesi: Grafiğin yürütülmesi, Oturum Nesnesi kullanılarak gerçekleştirilir. Oturum Nesnesi, tensör ve İşlem Nesnelerinin değerlendirildiği ortamı kapsar. Gerçek hesaplamaların ve bilginin bir katmandan diğerine aktarılmasının gerçekleştiği yer burasıdır. Farklı tensör Nesnelerinin değerleri başlatılır, erişilir ve yalnızca Oturum Nesnesine kaydedilir. Şimdiye dek tensör Nesneleri sadece soyut tanımlamalardı, işte canlandılar.

  Duyuru - 1

     

-Duyurular-

-Ana Menü-

bottom of page