TensorFlow, makine öğrenimi ve derin öğrenme sistemlerini uygulamak için kullanılan, Google tarafından oluşturulmuş açık kaynaklı bir yazılım kitaplığıdır. TensorFlow, bir bilgisayarın karmaşık kalıpları otomatik olarak nasıl tespit edeceğini ve/veya mümkün olan en iyi kararları nasıl vereceğini öğrenmesine izin vermek için ortak bir zorluğu paylaşan bir dizi güçlü algoritma içerir.

Bu sistemler ile ilgileniyorsanız ve yazılım teknolojilerine meraklıysanız, Anatoliacode blog gönderilerini inceleyebilirsiniz.

TensorFlow’a Giriş

TensorFlow, temelinde veri akışı programlaması için bir kitaplıktır. Matematiksel ifadelerin hesaplanmasını daha kolay ve daha performanslı hale getirmek için çeşitli optimizasyon tekniklerinden yararlanır.

TensorFlow’un temel özelliklerinden bazıları şunlardır:

  • Çok boyutlu diziler içeren matematiksel ifadelerle verimli bir şekilde çalışır.
  • Derin sinir ağları ve makine öğrenimi kavramları için iyi bir destektir.
  • Aynı kodun her iki mimaride de yürütülebildiği GPU/CPU hesaplama.
  • Makineler ve büyük veri kümeleri arasında yüksek hesaplama ölçeklenebilirliği.

Bu özellikler, TensorFlow’u üretim ölçeğinde makine zekası için mükemmel bir çerçeve haline getirir.

Bu TensorFlow makalesinde, TensorFlow’da basit ama güçlü makine öğrenimi yöntemlerini nasıl kullanabileceğinizi ve onunla oluşturulan modellerde hata ayıklama, görselleştirme ve ince ayar yapma için yardımcı kitaplıklarından bazılarını nasıl kullanabileceğinizi öğreneceksiniz.

TensorFlow’u Yükleme

Makalemizde, Python 2.7 ve Python 3.3+ ile çalışan TensorFlow Python API‘yi kullanacağız. GPU sürümü (Linux), Cuda Toolkit 7.0+ ve cuDNN v2 + gerektirir.

TensorFlow’u kurmak için Conda yönetim sistemini kullanacağız. Conda, bir makinedeki birden çok ortamı ayırmamıza olanak tanır. Conda’yı nasıl yükleyeceğiniz hakkında bilgi almak isterseniz bu linki kullanabilirsiniz.

Conda’yı kurduktan sonra TensorFlow kurulumu ve kullanımı için kullanacağımız ortamı oluşturabiliriz. Aşağıdaki komut, TensorFlow’u kullanmaya başladığımızda çok faydalı olan NumPy gibi bazı ek kitaplıklarla çalışma ortamımızı oluşturacaktır.

Vereceğimiz örneklerdeki Python sürümü 2.7‘dir.

İşleri biraz daha kolaylaştırmak için buraya sadece NumPy yerine biopython kuruyoruz. Bu, NumPy ve ihtiyaç duyacağımız diğer birkaç paketi içerir. Paketlere ihtiyaç duyduğunuzda conda install veya pip install komutlarını kullanarak kurabilirsiniz.

Aşağıdaki komut, oluşturulan Conda ortamını etkinleştirecektir. Global veya başka ortamlarda kurulan paketlerle karıştırmadan, içinde kurulu paketleri kullanabileceğiz.

Pip kurulum aracı, Conda ortamının standart bir parçasıdır. Bunu TensorFlow kütüphanesini kurmak için kullanacağız. Bunu yapmadan önce, aşağıdaki komutu kullanarak pip’i en son sürüme güncellemek iyi olacaktır:

Aşağıdaki komutu çalıştırarak TensorFlow’u kurmaya hazır hale gelebiliriz:

TensorFlow’un indirilmesi ve oluşturulması birkaç dakika sürebilir.

TensorFlow Veri Akış Grafikleri

TensorFlow’da hesaplama, veri akış grafikleri kullanılarak açıklanır. Grafiğin her bir düğümü, bir matematiksel işlemin (toplama, bölme veya çarpma gibi) bir örneğini temsil eder ve her kenar, işlemlerin gerçekleştirildiği çok boyutlu bir veri kümesidir (tensor).

TensorFlow Veri Akış Grafikleri Nedir?

TensorFlow hesaplama grafikleriyle çalıştığı için, her düğümün, her işlemin sıfır veya daha fazla girdiye ve sıfır veya daha fazla çıktıya sahip olduğu bir işlemin somutlaştırılmasını temsil ettiği yerlerde yönetilirler. Karışık bir cümle gibi durabilir ancak ilerleyen anlatımlarda bunu daha iyi anlayacağınıza inanıyorum.

TensorFlow’daki kenarlar iki kategoride gruplanabilir. Bir işlemin çıktısının başka bir işlem için girdi haline gelmesinin mümkün olduğu normal kenarlar (aktarım veri yapısı (tensörler)) ve iki düğüm arasındaki bağımlılığı kontrol etmek için kullanılan özel kenarlar (bir düğümün diğerinin bitmesini beklediği işlem sırası).

TensorFlow Basit İfadeler

TensorFlow’un öğelerini tartışmaya geçmeden önce, bir TensorFlow programının neye benzediğine dair bir fikir edinmek için önce TensorFlow ile bir kaç örnek yapmanın yararlı olacağını düşünüyorum.

Basit ifadelerle başlayalım ve bir sebepten dolayı y = 5*x + 13 işlevini TensorFlow tarzında değerlendirmek istediğimizi varsayalım.

Basit bir Python kodunda bu işlev şöyle görünür:

bu da bize 3.0 sonucunu verir.

Şimdi yukarıdaki ifadeyi TensorFlow terimlerine dönüştürmeye çalışalım.

Sabitler

TensorFlow’da sabitler, (constant(value, dtype=None, shape=None, name='Const', verify_shape=False)) imzasına sahip olan fonksiyon sabiti kullanılarak oluşturulur.  Burada  valuegerçek bir sabit değerdir. Sonraki hesaplamalarda kullanılacak dtype veri türü parametresidir. Örnek vermek gerekirse, float 32/64, int 8/16 örneklerini verebilirim. shape isteğe bağlı boyutlardır. nameise, tensör için isteğe bağlı bir addır ve son parametre de, değerlerin şeklinin doğrulandığını gösteren bir boole‘dur.

Eğer modelinizde belirli değerlere sahip sabitlere ihtiyacınız varsa, constant nesne aşağıdaki örnekte olduğu gibi kullanılabilir:

Değişkenler

TensorFlow’daki değişkenler, oturum boyunca durumu korumak için açıkça başlatılması ve grafik içinde kullanılması gereken tensörleri içeren bellek içi tamponlardır. Yapıcı basitçe çağırılarak değişken hesaplama grafiğine eklenir.

Değişkenler özellikle eğitim modellerine başladığınızda kullanışlıdır ve parametreleri almak ve güncellemek için kullanılırlar. Bir kurucunun bağımsız değişkeni olarak iletilen başlangıç ​​değeri, tensör olarak dönüştürülebilen veya döndürülebilen bir tensörü veya nesneyi temsil eder. Bir değişkeni daha sonra eğitim sürecinde kullanılacak ve yinelemeler üzerinden güncellenen bazı önceden tanımlanmış veya rastgele değerlerle doldurmak istiyorsak, bunu aşağıda yer alan komutla tanımlayabiliriz:

TensorFlow’da değişkenleri kullanmanın başka bir yolu da, bu değişkenin eğitilemediği ve aşağıdaki şekilde tanımlanabildiği hesaplamalardır:

Oturumlar

Düğümleri gerçekten değerlendirmek için, bir oturum içinde hesaplama grafiği çalıştırmalıyız. Bir oturum, TensorFlow çalışma zamanının kontrolünü ve durumunu içerir. Parametrelerin olmadığı bir oturum, geçerli oturumda oluşturulan varsayılan grafiği kullanacaktır, aksi takdirde oturum sınıfı, yürütülecek oturumda kullanılan bir grafik parametresini kabul eder.

Aşağıda, yukarıda tanımlanan terimlerin basit bir doğrusal işlevi hesaplamak için TensorFlow’da nasıl kullanılabileceğini gösteren kısa bir kod parçası bulunmaktadır:

TensorFlow’u Kullanma: Grafikleri Tanımlama

Veri akışı grafikleriyle çalışmanın iyi yanı, yürütme modelinin, uygulandıktan sonra TensorFlow’daki yazılımın, kodla ilgili tüm karmaşıklığın CPU veya GPU’da kullanılabildiği yürütme modelinden (CPU, GPU veya bazı kombinasyonlarda) ayrı olmasıdır.

Hesaplama grafiği, Graph nesnelerini açık bir şekilde somutlaştırmak zorunda kalmadan TensorFlow kütüphanesini kullanma sürecinde oluşturulabilir.

TensorFlow’daki bir Graph nesnesi, c = tf.add(a, b) gibi basit bir kod satırının sonucu olarak oluşturulabilir. Bu, a ve b toplam sonucunu c çıktısı olarak üreten bir işlem düğümü yaratacaktır. Hesaplama grafiği, Graph nesnesini doğrudan çağırmaya gerek kalmadan kitaplığı kullanan yerleşik bir işlemdir. TensorFlow’da, veri birimleri olarak bir dizi işlem ve tensör içeren bir Graph nesnesi, aynı işleme izin veren ve her grafiğin farklı bir oturuma atanacağı birden fazla grafik içeren işlemler arasında kullanılır.

TensorFlow ayrıca, beslemenin bir işlemin çıktısını tensör değeriyle değiştirdiği grafikteki herhangi bir işleme, bir tensörü patch etmek için besleme mekanizması sağlar. Besleme verileri, run()fonksiyon çağrısında bir argüman olarak aktarılır.

Placeholder, TensorFlow’un geliştiricilerin bazı ifadelerin içine bağlı placeholderlar aracılığıyla hesaplama grafiğine veri eklemelerine izin verme yöntemidir. Placeholder şu şekilde gösterilebilir:

burada dtype, tensörlerdeki elemanların tipidir ve hem beslenecek tensörlerin şeklini hem de işlemin adını belirtir.

Shape geçilmezse, bu tensör herhangi bir shape ile beslenebilir. Placeholder tensör verilerle beslenmelidir, aksi takdirde, oturumun yürütülmesi üzerine ve bu kısım eksikse, placeholder aşağıdaki yapıda bir hata oluşturur:

Placeholder’ın avantajı, geliştiricilerin önceden veri sağlamaya gerek kalmadan operasyonları ve hesaplama grafiğini oluşturmalarına izin vermesi ve verilerin çalışma zamanında harici kaynaklardan eklenebilmesidir.

Oturum çalıştırma yöntemi aracılığıyla bir placeholder’ın besleme mekanizmasıyla birlikte kullanılacağı, TensorFlow tipinde iki tamsayıyı çarpacak basit bir problemi ele alalım.

TensorBoard ile Grafiği Görselleştirme

TensorBoard, veri akış grafiklerini analiz etmek için bir görselleştirme aracıdır. Bu, makine öğrenimi modellerini daha iyi anlamak için yararlı olabilir.

TensorBoard ile, genel olarak hesaplama grafiğinin bölümleri, parametreleri, ayrıntıları ve farklı istatistik türleri hakkında fikir edinebilirsiniz. Derin bir sinir ağının çok sayıda düğüme sahip olması alışıldık bir durumdur. TensorBoard, geliştiricilerin her bir düğüm ve hesaplamanın TensorFlow çalışma zamanı üzerinden nasıl yürütüldüğü hakkında bilgi edinmesine olanak tanır.

Şimdi, bu TensorFlow öğreticisinin başında, doğrusal bir fonksiyon tanımladığımız örneğimize geri dönelim y = a*x + b.

Daha sonra TensorFlow, TensorBoard’da kullanılabilen oturumdaki olayları günlüğe kaydetmek için, FileWriter sınıfını sağlayacaktır.

Ve tam olarak örnek kodu şuna benzeyecektir:

Sadece iki yeni satır ekledik. Varsayılan grafikte toplanan tüm özetleri birleştiririz ve FileWriter sırasıyla yukarıda açıkladığımız gibi olayları dosyaya dökmek için kullanılır.

Programı çalıştırdıktan sonra, dizin günlüklerinde dosyamız oluşacaktır. Son adım olarak  tensorboard ‘u da çalıştıralım.

Artık TensorBoard başlatıldı ve varsayılan bağlantı noktası 6006 olarak belirlendi. http://localhost:6006url’si ile kontrol edebilirsiniz. Sayfanın üst kısmında yer alan Menu öğesini tıkladıktan sonra, aşağıdaki resimdeki gibi grafiği görebilmelisiniz:

http://localhost:6006

http://localhost:6006

TensorBoard, aşağıdaki gibi çeşitli semboller kullanır.

 

TensorFlow ve Matematik

Tensörler, TensorFlow’daki temel veri yapılarıdır ve bir veri akışı grafiğindeki bağlantı kenarlarını temsil ederler.

Bir tensör basitçe çok boyutlu bir diziyi veya listeyi tanımlar. Tensör yapısı üç parametre ile tanımlanabilir: sıra, şekil ve tür.

  • Derece: Tensörün boyut sayısını belirtir. Bir rank, bir tensörün mertebesi veya n-boyutları olarak bilinir.
  • Şekil: Bir tensörün şekli, sahip olduğu satır ve sütun sayısıdır.
  • Tür: Tensör elemanlarına atanan veri türüdür.

TensorFlow’da tensör oluşturmak için n-boyutlu bir dizi oluşturabiliriz. Bu işlem, NumPy kitaplığını kullanarak veya bir Python n-boyutlu dizisini TensorFlow tensörüne dönüştürerek kolayca yapılabilir.

TensorFlow’da bir tensör oluşturmak için n boyutlu bir dizi oluşturabiliriz.

1-d tensör oluşturmak için, yerleşik bir Python listesini ileterek oluşturacağımız NumPy dizisi kullanacağız.

Bu tür bir diziyle çalışmak, yerleşik bir Python listesiyle çalışmaya benzer. Temel fark, NumPy dizisinin boyut, şekil ve tür gibi bazı ek özellikleri de içermesidir.

Bir NumPy dizisi, geliştiricilerin Python nesnelerini tensör nesnelerine dönüştürmesine yardımcı olan convert to tensor yardımcı işlevi ile kolayca bir TensorFlow tensörüne dönüştürülebilir. Bu işlev tensör nesnelerini, NumPy dizilerini, Python listelerini ve Python skalerlerini kabul eder.

Şimdi tensörümüzü TensorFlow oturumuna bağlarsak, dönüşümümüzün sonuçlarını görebiliriz.

Ve çıktımız şu şekilde olacaktır:

Benzer şekilde 2 boyutlu bir tensör veya matris oluşturabiliriz:

Tensör İşlemleri

Yukarıdaki örnekte, vektörler ve matrisler üzerinde birkaç TensorFlow işlemi gerçekleştirmiş olduk. İşlemler tensörler üzerinde belirli hesaplamalar yapar. Bunun için buradaki linki inceleyebilirsiniz.

Linkte ki tablolarda listelenen TensorFlow işlemleri, tensör nesnelerle çalışır ve eleman bazında gerçekleştirilir. Dolayısıyla, bir x vektörü için kosinüsü hesaplamak isterseniz, TensorFlow işlemi, geçirilen tensördeki her öğe için hesaplamalar yapacaktır.

Çıktımız şu şekilde olacaktır:

Matris İşlemleri

Matris işlemleri, doğrusal regresyon gibi makine öğrenimi modellerinde, sıklıkla kullanıldıkları için çok önemlidir. TensorFlow, çarpma , yer değiştirme, ters çevirme, determinantı hesaplama, doğrusal denklemleri çözme vb. en yaygın matris işlemlerini destekler.

Burada biz de bazı matris işlemlerini açıklayacağız. Şimdi temel matris işlemlerini yapacak bir kod yazalım.

Verileri Dönüştürme

İndirgeme

TensorFlow, farklı indirgeme türlerini destekler. İndirgeme, bir tensörden bir veya daha fazla boyutu, bu boyutlar arasında belirli işlemleri gerçekleştirerek kaldıran bir işlemdir. Şimdi, örneğimize geçelim:

Ve çıktımız şu şekilde olacaktır:

İndirgeme operatörlerinin ilk parametresi, azaltmak istediğimiz tensördür. İkinci parametre, indirgemeyi gerçekleştirmek istediğimiz boyutların indeksleridir. Bu parametre isteğe bağlıdır ve geçilmezse, tüm boyutlar boyunca küçültme gerçekleştirilecektir.

İndirgeme toplamına buradan göz atabilirsiniz. 2 boyutlu bir tensörü geçiyoruz ve onu 1. boyuta indirgemek istiyoruz. Yani bizim durumumuzda ortaya çıkan toplam şu olacaktır:

0 boyutunu geçersek, sonuç şöyle olur:

Herhangi bir ekseni geçmezsek, sonuç şunların genel toplamıdır:

Tüm indirgeme işlevlerinin benzer bir arabirimi vardır ve TensorFlow indirgeme belgelerinde listelenmiştir.

Segmentasyon

Segmentasyon, boyutlardan birinin boyutları sağlanan segment dizinlerine eşleme işlemi olduğu ve ortaya çıkan öğelerin bir dizin satırı tarafından belirlendiği bir işlemdir.

Segmentasyon aslında öğeleri tekrarlanan dizinler altında gruplandırıyor. Örneğin, bizim durumumuzda, tensör tens1‘e uygulanan [0, 0, 1, 2, 2] kimliklerini bölümlere ayırdık, yani birinci ve ikinci diziler, bölünme işleminden sonra dönüştürülecek (bizim örneğimizden bu işlem toplama olacak) ve (2, 8, 1, 0) = (2+0, 5+3, 3-2, -5+5) şeklinde yeni bir dizi gibi görünecektir. Tensör tens1‘deki  üçüncü öğeye dokunulmaz, çünkü tekrarlanan herhangi bir dizinde gruplanmaz ve son iki dizi, birinci grupta olduğu gibi aynı şekilde toplanır.

Segmentasyon, boyutlardan birinin boyutları sağlanan segment dizinlerine eşleme işlemi olduğu ve ortaya çıkan öğelerin bir dizin satırı tarafından belirlendiği bir işlemdir.

Sequence Utilities

Sequence Utilities, aşağıdaki yöntemleri içerir:

  • Giriş tensörünün eksenleri boyunca minimum değerli indeksi döndüren argmin işlevi,
  • Giriş tensörünün eksenleri boyunca maksimum değere sahip dizini döndüren argmax işlevi,
  • iki sayı veya dize listesi arasındaki farkı hesaplayan setdiff ,
  • x veya y öğesinden geçirilen koşula bağlı olan öğeleri döndürecek where işlevi,
  • 1-D tensörde benzersiz öğeler döndürecek unique işlevi.

Aşağıda birkaç uygulama örneği göstermeye çalıştım:

Ve çıktımız şu şekilde olacaktır:

TensorFlow ile Makine Öğrenimi

Bu bölümde, TensorFlow ile bir makine öğrenimi kullanım örneği sunmaya çalışacağım. İlk örneğimizde,  verileri kNN yaklaşımı ile sınıflandırmak için bir algoritma kullanacağız. İkinci örnekte ise doğrusal regresyon algoritmasını kullanmaya çalışacağız.

kNN

İlk kullanacağımız algoritma kNN (k-nearest neighbors algorithm). kNN, verileri eğitime göre sınıflandırmak için Öklid mesafesi gibi mesafe ölçümlerini kullanan denetimli bir öğrenme algoritmasıdır. En basit algoritmalardan biridir, ancak yine de verileri sınıflandırmak için gerçekten güçlüdür. Bu algoritmanın avantajları şunlardır:

  • Eğitim modeli yeterince büyük olduğunda yüksek doğruluk sağlar.
  • Genellikle aykırı değerlere duyarlı değildir ve veriler hakkında herhangi bir varsayımda bulunmamıza gerek yoktur.

Bu algoritmanın dezavantajları ise:

  • Hesaplama açısından maliyetlidir.
  • Yeni sınıflandırılmış verilerin eklenmesi gereken çok fazla bellek gerektirir.

Bu kod örneğinde kullanacağımız mesafe, iki nokta arasındaki mesafeyi şu şekilde tanımlayan Ökliddir.

matematiksel denklem

Bu formülde; n, uzayın boyut sayısıdır. x, eğitim verilerinin vektörüdür ve ysınıflandırmak istediğimiz yeni bir veri noktasıdır.

Yukarıdaki örnekte kullandığımız veri kümesi, Kaggle veri kümeleri bölümünde bulunabilen bir veri kümesidir. Veri kümesi 31 değişken içerir: Zaman, V1,…, V28, Miktar ve Sınıf. Bu kod örneğinde sadece V1,…, V28 ve Class kullanıyoruz. 1 sahte olanları, o ise olmayanları temsil eden işlem etiketleri görevini görüyor.

Kod örneği, bir veri kümesini yüklemek için işlevi sunduğumuz istisna dışında, çoğunlukla önceki bölümlerde anlattığımız şeyleri içerir. load_data(filepath) işlevi, bağımsız değişken olarak bir CSV dosyası alır ve CSV’de tanımlanan veriler ve etiketlerle bir demet döndürür.

Bu işlevin hemen altında, test ve eğitilmiş veriler için placeholder’lar tanımladık. Tahmin modelinde, sınıflandırılması gereken girdi verilerinin etiketlerini çözmek için eğitilmiş veriler kullanılır. Bizim durumumuzda kNN, en yakın etiketi almak için Öklid mesafesini kullanır.

Hata oranı, bir sınıflandırıcı, -bizim durumumuzda bu veri kümesi için 0.2- toplam örnek sayısını kaçırdığında, sayı ile basit bölme yoluyla hesaplanabilir (yani, sınıflandırıcı bize test verilerinin % 20’si için yanlış veri etiketi verir).

Doğrusal Regresyon

Doğrusal regresyon algoritması, iki değişken arasında doğrusal bir ilişki arar. Bağımlı değişkeni y ve bağımsız değişkeni x olarak etiketlersek, y = Wx + b fonksiyonunun parametrelerini tahmin etmeye çalışırız.

Doğrusal regresyon, uygulamalı bilimler alanında yaygın olarak kullanılan bir algoritmadır. Bu algoritma, uygulamaya iki önemli makine öğrenimi kavramının eklenmesine olanak tanır: Loss Function ve işlevin minimumunu bulmak için Gradient Descent.

Bu yöntem kullanılarak uygulanan bir makine öğrenimi algoritması, y‘nin değerlerini x‘in bir fonksiyonu olarak tahmin etmelidir; burada doğrusal bir regresyon algoritması, gerçekte bilinmeyen ve eğitim süreci boyunca belirlenen W ve b değerlerini belirleyecektir. Bir “loss function” seçilir ve genellikle ortalama kare hatası, gradient descent’in, maliyet fonksiyonunun yerel bir minimumunu bulmak için kullanılan optimizasyon algoritması olduğu durumlarda kullanılır.

Gradient descent yöntemi ile yalnızca yerel bir fonksiyon minimumdur, ancak yerel bir minimum bulduktan sonra rastgele yeni bir başlangıç ​​noktası seçerek ve bu işlemi birçok kez tekrarlayarak global bir minimum arayışında kullanılabilir. İşlevin minimum sayısı sınırlıysa ve çok sayıda deneme varsa, bir noktada küresel minimumun tespit edilmesi olasılığı yüksektir.

Ve çıktımız şu şekilde olacaktır:

Yukarıdaki örnekte, cost ve train dediğimiz iki yeni değişkenimiz var. Bu iki değişkenle, eğitim modelimizde kullanmak istediğimiz bir optimize edici ve en aza indirmek istediğimiz işlevi tanımlamış olduk.

Sonunda, W ve b‘nin çıktı parametreleri, create_test_values işlevinde tanımlananlarla aynı olmalıdır. 17. satırda, aslında w1 = 2, w2 = 3, w3 = 7 ve b = 4 olan doğrusal veri noktalarını oluşturmak için kullandığımız bir fonksiyon tanımladık. Yukarıdaki örnekteki doğrusal regresyon, birden fazla bağımsız değişkenin kullanıldığı çok değişkenlidir.

Sonuç Olarak

Bu TensorFlow makalesinde görebileceğiniz gibi TensorFlow, matematiksel ifadeler ve çok boyutlu dizilerle çalışmayı çocuk oyuncağı haline getiren güçlü bir çerçevedir (ki bu gerçekten makine öğrenimi konusunda ihtiyaç duyduğumuz bir şeydir).  Ayrıca, veri grafiklerini yürütme ve ölçeklendirme karmaşıklıklarını da özetler.

Zamanla, TensorFlow popülaritesi arttı ve şimdi geliştiriciler tarafından görüntü tanıma, video algılama, metin işleme gibi derin öğrenme yöntemlerini kullanarak sorunları çözmek için kullanılıyor. Diğer kitaplıklar gibi, TensorFlow’un üzerine kurulu olduğu kavramlara alışmak için biraz zamana ihtiyacınız olabilir.  Ve bunu yaptığınızda, dokümantasyon ve topluluk desteğinin yardımıyla, sorunları veri grafikleri olarak temsil etmek ve TensorFlow ile çözmek, makine öğrenimini daha az sıkıcı bir süreç haline getirebilir.

 

Buraya kadar bana eşlik ettiğiniz için teşekkürler. Sorularınızı sormaktan çekinmeyin.

Sağlıcakla Kalın!

Paylaşmak İster Misiniz?