TensorFlow 2.0 ile Derin Öğrenme: Bilmeniz Gereken Her Şey

Yayınlanan: 2021-01-05

TensorFlow, Google'ın Makine Öğrenimi çerçevesidir. Öncelikle Derin Öğrenme ile ilgili görevler için kullanılır ve diğer Google API'leriyle de sorunsuz bir şekilde bütünleşir. TensorFlow, şu anda sektörde Derin Öğrenme için en çok kullanılan kitaplıklardan biri ve kesinlikle öğrenmeye değer!

Bu eğitimin sonunda, aşağıdakiler hakkında bilgi sahibi olacaksınız.

  • TensorFlow nedir?
  • TF 2.0'daki yenilikler neler?
  • TensorFlow ve Keras
  • TensorFlow'u Yükleme
  • TensorFlow'da Görüntü Sınıflandırıcı

İçindekiler

TensorFlow Nedir?

TensorFlow, Google tarafından bir Açık Kaynak Derin Öğrenme kitaplığı olarak başladı ve şimdi uçtan uca Makine Öğrenimi süreçleri için eksiksiz bir çerçevedir. Google'ın neden bu ismi seçtiğini ve “Tensor” ne anlama geldiğini merak ediyor olabilirsiniz.

Tensör Nedir?

Tensörler, çok boyutlu diziler üzerinde karmaşık işlemler gerçekleştirmenizi sağlayan çok boyutlu dizilerdir. Ancak, bunlar yalnızca N boyutlu bir dizi değildir.

Bir Tensör ayrıca nokta çarpım, toplama, matris çarpımı gibi dönüşümleri de içerir.

Ama Neden Önemlidirler?

Tensörler yeni değil. Uzun zamandan beri kullanılmaktadırlar, ancak özelliklerinden, verilerin genellikle çok büyük ve çok boyutlu olduğu Derin Öğrenme alanında yoğun bir şekilde yararlanılmaktadır.

Tensörler, tıpkı Numpy dizileri gibi, bir şekle ve veri tipine sahiptir. Tüm tensörler Python sayıları ve dizgileri gibi değişmezdir: Bir tensörün içeriğini asla güncelleyemezsiniz, yalnızca yeni bir tane oluşturabilirsiniz.

Ancak onları normal Numpy dizilerinden farklı kılan şey, veri yüksek boyutlu ve boyut milyonlarca veya daha fazla olduğunda son derece önemli olan GPU belleğini ve hesaplama gücünü kullanma yetenekleridir.

Tensörler, Facebook'un Pytorch'u ve Google'ın TensorFlow'u gibi Derin Öğrenme çerçevelerinde çokça kullanılır ve hatta onlardan sonra adlandırılır!

Google ayrıca, özellikle optimizasyonu tamamen bir sonraki seviyeye taşıyan TensorFlow için Tensor Processing Unit (TPU) adlı başka bir AI hızlandırıcı geliştirdi!

Okuyun: Derin Öğrenmede Düzenleme

TF 2.0'daki Yenilikler Neler?

Google, TensorFlow 1'in ilk sürümünü 2015 yılında Google Beyin Ekibi tarafından yayınlamıştı.

Sinir ağlarını oluşturmak için TensorFlow 1.x'i kullanmak, çok fazla kod yazılması gerektiğinden kolay bir iş değildi.

Tembel Değerlendirme ve İstekli Değerlendirme

TensorFlow 1.x ile, herhangi bir "grafiğin" çıktısını oluşturmak için Oturumlar oluşturmaya ve bu oturumları çalıştırmaya ihtiyaç vardı. Bunu aşağıdaki kodla anlayalım

tensorflow'u tf olarak içe aktar

a = tf.sabit(1)
b = tf.sabit(2)
c = tf.add(a, b)
yazdır(c)

Yukarıdaki kodu çalıştırmak size istediğiniz çıktıyı vermeyecektir, yani 3. TensorFlow 1.x'in oturumlarda çalışmasıdır.

Oturum, yapması gereken tüm değişkenleri ve dönüşümleri içeren bir ortam türüdür.

tf.session.run() çalıştırılarak özel olarak çağrılana kadar değerlendirilmeyen bir dönüşüm grafiği yapıldı.

Bu nedenle, yukarıdaki kod, şunları yaparsanız beklediğinizi döndürür:

tf.Session.run(c)

Buna Tembel değerlendirme denir. Özellikle koşması söylenene kadar tembelce beklediği için.

Bu uzun ve karmaşık sürecin çözülmesi gerekiyordu ve bu nedenle TensorFlow 2.x'e ihtiyaç duyuldu.

TF 2.x, varsayılan olarak Eager değerlendirmesiyle birlikte gelir, bu da süreçleri kodlamamızı ve çalıştırmamızı gerçekten kolaylaştırır.

Şu anda seans yok ve TF 1.x'te 100 satır alan sinir ağı eğitimi, TF 2.x ile 20'den az sürüyor.

TensorFlow'un istekli yürütmesi, işlemleri grafikler oluşturmadan hemen değerlendiren zorunlu bir programlama ortamıdır: işlemler daha sonra çalıştırılacak bir hesaplama grafiği oluşturmak yerine somut değerler döndürür.

Bu, TensorFlow ve hata ayıklama modellerini kullanmaya başlamayı kolaylaştırır ve aynı zamanda ortak bilgileri de azaltır.

TensorFlow ve Keras

Soru gerçekten TensorFlow vs Keras değil. Keras'lı TensorFlow'dur. Keras, TensorFlow 1.x üzerinden onunla çalışmayı çok kolaylaştıran üst düzey bir API sağladı.

Şimdi TF 2.0 ile TensorFlow, tf.keras ile model tasarımı ve eğitimi için Keras'ı resmi olarak API'sinin bir parçası yaptı.

Daha önce Keras'ta yapılan tüm kodların, tüm TensorFlow bileşenlerini ve ekosistemi kullanmasına izin verdiği için, şimdi TF 2.0'da tf.keras ile yapılması önerilmektedir:

  • TensorFlow modellerini sorunsuz bir şekilde sunmak/dağıtmak için kullanılan TensorFlow Hizmet Verme.
  • TensorFlow'un Android ve IOS üzerinde çalışabilen mobil versiyonu olan TensorFlow Lite .
  • TensorFlow.js , düşük seviyeli JavaScript lineer cebir kitaplığını veya yüksek seviyeli katmanlar API'sini kullanarak modeller oluşturmamıza ve eğitmemize izin veren bir API koleksiyonudur. Bu nedenle, derin öğrenme modelleri bir tarayıcıda eğitilebilir ve çalıştırılabilir.
  • TensorBoard , TensorFlow programlarını anlamak, hata ayıklamak ve optimize etmek için bir görselleştirme araçları paketidir.

TensorFlow'u Yükleme

Makine Öğrenimi konusunda yeniyseniz, işleri yoluna koymanın en kolay yolu bir Colab Not Defteri açmaktır. https://colab.research.google.com/ adresine gidin ve “New Python 3 Notebook”u tıklayın.

Çekirdeğin sağ üstte "bağlandı" yazdığından emin olun. İyi haber, TensorFlow, Google Colab'da önceden yüklenmiş olarak gelir.

İşte! Hazırsınız.

Doğru sürümü kullanıp kullanmadığınızı kontrol etmek için aşağıdaki parçacığı çalıştırın.

tensorflow'u tf olarak içe aktar
tf.__sürüm__

2.0.0'ın üzerindeki herhangi bir sürümü söylemeli ve gitmeye hazırsınız.

TensorFlow'da Görüntü Sınıflandırıcı

Şimdi Derin Öğrenme problemlerinin “Merhaba Dünyası”nı – MNIST veri setini – gözden geçirelim.

MNIST veri setini tahmin etmek için kısa bir sinir ağı oluşturacağız. Aşağıdaki adımları izleyeceğiz.

  1. Görüntüleri sınıflandıran bir sinir ağı oluşturun.
  2. Bir sinir ağı eğitin.
  3. Modelin doğruluğunu değerlendirin

TensorFlow'u içe aktarma.

tensorflow'u tf olarak içe aktar

MNIST verileri yükleniyor.

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

Katmanları yığarak bir tf.keras.Sequential modeli oluşturma.

Modelin eğitilmesi için bir optimize edici ve bir kayıp işlevi seçmemiz gerekir.

model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, aktivasyon='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10)
])

Seyrek Kategorik Çapraz Entropi kaybı fonksiyonunu tanımlama.

kayıp_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

Modelin derlenmesi.

model.compile(optimizer='adam',
kayıp=kayıp_fn,
metrikler=['doğruluk'])

Modeli 5 dönem ile eğitmek.

model.fit(x_train, y_train, dönemler=5)

Modelin değerlendirilmesi.

model.evaluate(x_test, y_test, ayrıntılı=2)

313/313 – 0s – kayıp: 0.0825 – doğruluk: 0.9753

[0.082541823387146, 0.9753000140190125]

Görüntü sınıflandırıcı artık bu veri kümesinde ~%98 doğruluk için eğitilmiştir.

Gitmeden önce

TensorFlow 2, istekli yürütme, sezgisel üst düzey API'ler ve herhangi bir platformda esnek model oluşturma gibi güncellemelerle basitlik ve kullanım kolaylığına odaklanır.

TensorFlow, bugünlerde herhangi bir derin öğrenme görevi için başvurulacak kitaplık/araçtır. Diğer en çok kullanılan ve popüler kütüphane ise Facebook'un PyTorch'udur.

TensorFlow'un genişletilmiş ekosistemi, onu Derin Öğrenme yolculuğunuza başlamak için harika bir yer yapar. Anlaması kolaydır ve daha da önemlisi uygulaması kolaydır.

Başlamak için en iyi yer, kullanıcı dostu Sıralı API'dir. Yapı taşlarını birbirine takarak modeller oluşturabilirsiniz. Derin öğrenme teknikleri hakkında daha fazla bilgi edinin.

Çözüm

Artık tüm önemli Derin öğrenme çerçeveleri hakkında ayrıntılı bir fikriniz olduğuna göre, bilinçli bir karar verebilir ve projenize en uygun olanı seçebilirsiniz.

Derin öğrenme ve yapay zeka hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 30'dan fazla vaka çalışması ve ödevi, 25'ten fazla endüstri mentorluğu oturumu, 5'ten fazla pratik el sağlayan Makine Öğrenimi ve Yapay Zeka alanında PG Diploma programımıza göz atın. - capstone projeleri, en iyi firmalarla 450 saatten fazla sıkı eğitim ve işe yerleştirme yardımı.

Geleceğin Kariyerine Hazırlanın

MAKİNE ÖĞRENİMİNDE PG DİPLOMASI VE YAPAY ZEKA
DAHA FAZLA BİLGİ EDİN