TensorFlow

Makine öğrenimi karmaşık bir disiplindir, ancak veri alma, modelleri eğitme, tahminler sunma ve gelecekteki sonuçları iyileştirme sürecini kolaylaştıran Google’ın TensorFlow’u gibi makine öğrenimi çerçeveleri sayesinde makine öğrenimi modellerini uygulamak eskisinden çok daha az göz korkutucudur. TensorFlow, Google Brain ekibi tarafından oluşturulan ve ilk olarak 2015 yılında halka sunulan, sayısal hesaplama ve büyük ölçekli makine öğrenimi için açık kaynaklı bir kitaplıktır.

TensorFlow, tensör adı verilen daha yüksek boyutlara sahip çok boyutlu diziler biçimindeki verileri kabul eder. Çok boyutlu diziler, büyük miktarda veriyi işlemede çok kullanışlıdır. Düğümleri ve kenarları olan veri akış grafikleri temelinde çalışır. Yürütme mekanizması grafikler biçiminde olduğundan, GPU’ları kullanırken TensorFlow kodunu bir bilgisayar kümesinde dağıtılmış bir şekilde yürütmek çok daha kolaydır. Bir dizi makine öğrenimi ve derin öğrenme modelini ve algoritmasını (diğer adıyla sinir ağları) bir araya getirir ve bunları yaygın programatik metaforlar yoluyla kullanışlı hale getirir. Uygulama oluşturmak için uygun bir ön uç API’si sağlamak amacıyla Python veya JavaScript kullanır. Bu uygulamaları yüksek performanslı C++’da yürütür.

PyTorch ve Apache MXNet gibi framework’lerle rekabet eden TensorFlow, el yazısı rakam sınıflandırma, görüntü tanıma, kelime gömme, tekrarlayan sinir ağları, makine çevirisi için diziden diziye modeller, doğal dil işleme ve PDE (kısmi diferansiyel denklem) tabanlı simülasyonlar için derin sinir ağlarını eğitebilir ve çalıştırabilir. Hepsinden iyisi, eğitim için kullanılan modellerin aynısıyla geniş ölçekte üretim tahminini destekler. Ayrıca kendi projelerinizde kullanılabilecek önceden eğitilmiş modellerden oluşan geniş bir kitaplığa sahiptir.

TensorFlow Tarihçesi

TensorFlow ilk olarak 2015 yılında halka açıklanırken, ilk kararlı sürüm 11 Şubat 2017’de ortaya çıktı. Açık kaynaklı bu yazılım kütüphanesi, Google tarafından oluşturuldu ve sürdürüldü. O zamandan beri, derin öğrenme ve makine öğrenimi projeleri için en popüler çerçevelerden biri haline geldi. Büyük ölçekli makine öğrenimi ve sayısal hesaplama için geniş bir kütüphaneye sahiptir. TensorFlow’un bazı kilometre taşlarına göz atalım.

  • Aralık 2017’de Kubeflow, Kubernetes’te TensorFlow’un çalıştırılması ve konuşlandırılması için piyasaya sürüldü.
  • Mart 2018’de JavaScript’te makine öğrenimi için TensorFlow 1.0 piyasaya sürüldü.
  • Ocak 2019’da TensorFlow’a bir dizi bileşen ekleyen TensorFlow 2.0 piyasaya sürüldü.
  • Mayıs 2019’da bilgisayar grafiklerinde derin öğrenme için TensorFlow Graphic piyasaya sürüldü.

TensorFlow Nasıl Çalışır?

Geliştiricilerin veri akışı grafikleri oluşturmasına olanak tanır. Bunlar, verilerin bir grafikte veya bir dizi işleme düğümünde nasıl hareket ettiğini açıklayan yapılardır. Grafikteki her düğüm matematiksel bir işlemi temsil eder. Düğümler arasındaki her bağlantı veya kenar çok boyutlu bir veri dizisi veya tensördür.

TensorFlow uygulamaları, uygun olan herhangi bir hedefte çalıştırılabilir. Bunlar, yerel bir makine, buluttaki bir küme, iOS ve Android cihazlar, CPU’lar veya GPU’lar olabilir. Google’ın kendi bulutunu kullanıyorsanız, daha fazla hızlandırma için TensorFlow’u, Google’ın özel Tensor İşleme Birimi (TPU) silikonunda çalıştırabilirsiniz. Bununla birlikte, TensorFlow tarafından oluşturularak ortaya çıkan modeller, tahminlere hizmet etmek için kullanılacakları hemen hemen her cihaza dağıtılabilir.

Ekim 2019’da piyasaya sürülen TensorFlow 2.0, çalışmayı kolaylaştırmak ve daha performanslı hale getirmek için kullanıcı geri bildirimlerine dayalı olarak çerçeveyi birçok yönden yeniledi. Yeni bir API sayesinde dağıtılmış eğitimin yürütülmesi daha kolaydır. TensorFlow Lite desteği, modelleri çok çeşitli platformlarda dağıtmayı mümkün kılar. Bununla birlikte, yeni TensorFlow 2.0 özelliklerinden maksimum düzeyde yararlanmak için TensorFlow’un önceki sürümleri için yazılan kodun bazen çok az, bazen önemli ölçüde yeniden yazılması gerekir.

Eğitilen bir model, REST veya gRPC API’lerini kullanarak Docker kapsayıcısı aracılığıyla tahminleri hizmet olarak teslim etmek için kullanılabilir. Daha gelişmiş hizmet senaryoları için Kubernetes kullanabilirsiniz.

TensorFlow Mimarisi

Tensorflow mimarisi üç önemli adımda çalışır.

  1. Veri ön işleme: Verileri yapılandırın ve tek bir sınırlayıcı değer altında toplama.
  2. Modeli oluşturma: Veriler için modeli oluşturma.
  3. Modeli eğitme ve tahmin etme: Modeli eğitmek ve bilinmeyen verilerle test etmek için verileri kullanma.

Tensorflow Nerede Çalışır?

TensorFlow, gereksinimleri, geliştirme aşaması (modeli eğitmek) ve çalıştırma aşaması (modeli farklı platformlarda çalıştırmak) olarak sınıflandırılabilir. Model, CPU’ların yanı sıra GPU’lar üzerinde de eğitilebilir ve kullanılabilir. Model eğitildikten sonra şu platformlarda çalıştırabilirsiniz:

  • Masaüstü (Linux, Windows, macOS)
  • Mobil cihazlar (iOS ve Android)
  • Web hizmeti olarak bulut

TensorFlow’u Python ile Kullanma

TensorFlow, programcı için tüm bunları Python dili aracılığıyla sağlar. Python’u öğrenmesi ve üzerinde çalışması kolaydır. Üst düzey soyutlamaların nasıl birleştirilebileceğini ifade etmek için uygun yollar sağlar. TensorFlow, Python 3.7 ila 3.10 sürümlerinde desteklenir ve Python’un önceki sürümlerinde çalışsa da bunu yapacağı garanti edilmez.

TensorFlow’daki düğümler ve tensörler Python nesneleridir. TensorFlow uygulamalarının kendileri Python uygulamalarıdır. Ancak gerçek matematik işlemleri Python’da gerçekleştirilmez. TensorFlow aracılığıyla kullanılabilen dönüşüm kitaplıkları, yüksek performanslı C++ ikili dosyaları olarak yazılır. Python sadece parçalar arasındaki trafiği yönlendirir ve bunları birbirine bağlamak için üst düzey programlama soyutlamaları sağlar.

TensorFlow’da düğümlerİ ve katmanlarI oluşturmak, bunları birbirine bağlamak gibi üst düzey çalışmalar için Keras kitaplığı kullanılır. Keras API’si görünüşte basittir. Üç katmanlı temel bir model, 10 satırdan daha az kodla tanımlanabilir ve bunun için eğitim kodu yalnızca birkaç satır daha fazla kod alır. Ancak kendi döngünüzü yazmak gibi daha ince işler yapmak istiyorsanız, biraz daha çaba gerekebilir.

TensorFlow’u JavaScript ile Kullanma

Python, genel olarak TensorFlow ve makine öğrenimi ile çalışmak için en popüler dildir. Ancak JavaScript artık TensorFlow için birinci sınıf bir dildir. JavaScript’in en büyük avantajlarından biri, web tarayıcısının olduğu her yerde çalışmasıdır.

JavaScript TensorFlow kitaplığı olarak adlandırılan TensorFlow.js, sistemde bulunan GPU’lar aracılığıyla hesaplamaları hızlandırmak için WebGL API’sini kullanır. Yürütme için bir WebAssembly arka ucu kullanmak da mümkündür. Yalnızca bir CPU üzerinde çalışıyorsanız normal JavaScript arka ucundan daha hızlıdır, ancak mümkün olduğunda GPU’ları kullanmak en iyisidir. Önceden oluşturulmuş modeller, işlerin nasıl yürüdüğü hakkında size bir fikir vermek için basit projelerle çalışmaya başlamanıza olanak tanır.

Neden TensorFlow Kullanmalısınız?

TensorFlow’un makine öğrenimi geliştirme için sağladığı en büyük fayda soyutlamadır. Geliştirici, algoritmaları uygulamanın en ince ayrıntılarıyla uğraşmak veya bir işlevin çıktısını diğerinin girdisine bağlamanın uygun yollarını bulmak yerine, genel uygulama mantığına odaklanabilir. Perde arkasındaki ayrıntılarla ilgilenir.

TensorFlow uygulamalarında hata ayıklaması ve iç gözlem yapması gereken geliştiriciler için ek kolaylıklar sunar. Tüm grafiği tek bir opak nesne olarak oluşturmak ve hepsini bir kerede değerlendirmek yerine, her grafik işlemi ayrı ayrı ve şeffaf bir şekilde değerlendirilebilir ve değiştirilebilir. TensorFlow’un eski sürümlerinde bir seçenek olarak sunulan bu sözde “istekli yürütme modu” artık standarttır.

TensorBoard görselleştirme paketi, etkileşimli, web tabanlı bir gösterge panosu aracılığıyla grafiklerin çalışma şeklini incelemenize ve profillemenize olanak tanır. Tensorboard.dev (Google tarafından barındırılan) adlı bir hizmet, TensorFlow’da yazılmış makine öğrenimi deneylerini barındırmanıza ve paylaşmanıza olanak tanır. 100 milyona kadar skaler, 1 GB tensör verisi ve 1 GB ikili nesne verisi depolama ile kullanımı ücretsizdir. (Tensorboard.dev’da barındırılan tüm verilerin herkese açık olduğunu unutmayın, bu nedenle hassas projeler için kullanmayın.)

TensorFlow ayrıca Google’da birinci sınıf bir ticari kıyafetin desteklenmesinden birçok avantaj elde eder. Google, projenin arkasındaki hızlı geliştirme hızını artırdı. TensorFlow’un dağıtımını ve kullanımını kolaylaştıran birçok önemli teklif oluşturdu. Google’ın bulutunda hızlandırılmış performans için yukarıda belirtilen TPU silikonu sadece bir örnektir.

Yazımız ilginizi çektiyse ve bir yerden başlamak istiyorsanız, TensorFlow Kurulumu adlı yazımızı inceleyerek ilk adımı atabilirsiniz.

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here