# TensorFlow
TensorFlow, makine öğrenimi için ücretsiz ve açık kaynaklı bir yazılım kütüphanesidir . Bir dizi görevde kullanılabilir, ancak derin sinir ağlarının eğitimi ve çıkarımına özel olarak odaklanmaktadır.
Tensorflow, veri akışına ve türevlenebilir programlamaya dayalı sembolik bir matematik kitaplığıdır. Google'da hem araştırma hem de üretim için kullanılmaktadır.
TensorFlow, Google Brain ekibi tarafından Google'ın iç işlerinde kullanımı için geliştirilmiştir. 2015 yılında Apache License 2.0 sürümü altında piyasaya sürülmüştür.


## Tarih.
### DistBelief.
2011'den itibaren, Google Brain DistBelief'i derin öğrenme sinir ağlarına özel mülk bir makine öğrenimi sistemi olarak geliştirmiştir. Kullanımı, hem araştırma hem de ticari uygulamala alanlarında çeşitli Alphabet şirketlerinde hızla artmıştır. Google, DistBelief'in kod tabanını basitleştirmek ve yeniden düzenlemek için Jeff Dean dahil olmak üzere birden fazla bilgisayar bilimcisini görevlendirmiştir. Yapılan çalışmalar sonucunda TensorFlow ortaya çıkmıştır. 2009 yılında, Geoffrey Hinton liderliğindeki ekip, genelleştirilmiş geri yayılımı ve önemli ölçüde daha yüksek doğrulukla sinir ağlarının üretilmesine izin veren iyileştirmeleri uygulamaya koymuştur. Ayrıca, konuşma tanımadaki hatalarda %25'lik bir azalma sağlayan diğer iyileştirmeleri de uygulamaya koymuştur.


### TensorFlow.
TensorFlow, Google Brain'in ikinci nesil sistemidir. 1.0.0 sürümü 11 Şubat 2017'de yayınlanmıştır. Referans uygulama tek cihazlarda çalışırken, TensorFlow birden fazla CPU ve GPU üzerinde çalışabilmektedir (grafik işleme birimlerinde genel amaçlı bilgi işlem için isteğe bağlı CUDA ve SYCL uzantıları ile birlikte). TensorFlow, 64 bit Linux, macOS, Windows ve Android ve iOS dahil mobil bilgi işlem platformlarında mevcuttur.
Esnek mimarisi, hesaplamanın çeşitli platformlarda (CPU'lar, GPU'lar, TPU'lar ) ve masaüstlerinden sunucu kümelerine, mobil ve uç cihazlara kadar kolay dağıtımına olanak tanımaktadır.
TensorFlow hesaplamaları, durum bilgisi olan veri akışı grafikleri olarak ifade edilebilmektedir. "TensorFlow" adı, bu tür sinir ağlarının "tensörler" olarak adlandırılan çok boyutlu veri dizileri üzerinde gerçekleştirdiği işlemlerden türemiştir. Haziran 2016'daki Google I / O Konferansı sırasında Jeff Dean, GitHub'daki 1.500 kütüphanenin TensorFlow'dan bahsettiğini ve bunlardan sadece 5'inin Google tarafından oluşturulduğunu belirtmiştir.
Aralık 2017'de Google, Cisco, Red Hat, CoreOS ve CaiCloud'dan gelen geliştiriciler bir konferansta Kubeflow'u tanıtmıştır. Kubeflow, Kubernetes üzerinde TensorFlow'un çalıştırılmasına ve konuşlandırılmasına izin vermektedir.
Mart 2018'de Google, JavaScript'te makine öğrenimi için TensorFlow.js sürüm 1.0'ı duyurmuştur.
Ocak 2019'da Google, TensorFlow 2.0'ı duyurmuştur. Resmi olarak Eylül 2019'da erişilebilir hale gelmiştir.
Mayıs 2019'da Google, bilgisayar grafiklerinde derin öğrenme için TensorFlow Graphics'i duyurmuştur.


### Tensör işleme birimi.
Mayıs 2016'da Google, özellikle makine öğrenimi için geliştirilmiş ve TensorFlow için özel olarak tasarlanmış, uygulamaya özel bir entegre devre (ASIC, bir donanım çipi) olan Tensor işleme birimini (Tensor processing unit (TPU)) duyurmuştur. TPU, düşük hassasiyetli aritmetikte (ör. 8 bit ) yüksek verim sağlamak için tasarlanmıştır. Ayrıca,modelleri eğitmek yerine kullanmaya veya çalıştırmaya yönelik programlanabilir bir yapay zeka hızlandırıcısıdır. Google, veri merkezlerinde bir yıldan uzun süredir TPU'ları çalıştırdıklarını açıklamıştır. Aynı zamanda, makine öğrenimi için watt başına daha iyi optimize edilmiş bir performans beklediklerini açıklamıştır.
Mayıs 2017'de Google, ikinci neslin yanı sıra TPU'ların Google Compute Engine'de kullanılabilirliğini duyurmuştur. İkinci nesil TPU'lar 180 teraflop'a kadar performans sunmaktadır. Ayrıca, 64 TPU'luk kümeler halinde düzenlendiklerinde 11,5 petaflop'a kadar performans sağlamaktadır.
Mayıs 2018'de Google, 420 teraflop performans ve 128 GB yüksek bant genişliğine sahip bellek (HBM)) sunan üçüncü nesil TPU'ları duyurmuştur. Cloud TPU v3 Kapsüller, 100'den fazla petaflop performans ve 32 TB HBM sunmaktadır.
Şubat 2018'de Google, TPU'ları Google Cloud Platform'da beta olarak kullanıma sunduklarını duyurmuştur.


### Edge TPU.
Temmuz 2018'de Edge TPU duyurulmuştur. Edge TPU, Google'ın TensorFlow Lite makine öğrenimi modellerini akıllı telefonlar gibi uç bilgi işlem olarak bilinen bilgi işlem cihazlarında çalıştırmak için tasarlanmış ASIC yongasıdır.


### TensorFlow Lite.
Mayıs 2017'de Google, özellikle mobil geliştirmeye yönelik bir yazılım yığını olan TensorFlow Lite'ı duyurmuştur. Ocak 2019'da TensorFlow ekibi, Android cihazlarda OpenGL ES 3.1 Compute Shaders ve iOS cihazlarda Metal Compute Shaders ile mobil GPU çıkarım motorunun geliştirici önizlemesini yayınlamıştır. Mayıs 2019 yılında Google, TensorFlow Lite Micro'nun (TensorFlow Lite for Microcontrollers olarak da bilinir) ve ARM'nin uTensor'unun birleşeceğini duyurmuştur.
TensorFlow Lite, standart TensorFlow modelleri tarafından kullanılan Protocol Buffers biçiminden kaçınarak ağ modelleri için veri serileştirme biçimi olarak FlatBuffers kullanmaktadır.


### Pixel Visual Core (PVC).
Ekim 2017'de Google, mobil cihazlar için tamamen programlanabilir bir görüntü, resim ve yapay zeka işlemcisi olan Pixel Visual Core'u (PVC) içeren Google Pixel 2'yi piyasaya sürmüştür. PVC makine öğrenme için TensorFlow'u desteklemektedir. Ayrıca görüntü işleme için Halide progralama dilini desteklemektedir.


### Uygulamalar.
Google TensorFlow tarafından desteklenen RankBrain'i 26 Ekim 2015 tarihinde resmen yayınlamıştır.
Ayrıca Google, kurulum gerektirmeyen bir TensorFlow Jupyter Notebook ortamı olan Colaboratory'u da piyasaya sürmüştür.


### Machine Learning Crash Course (MLCC).
1 Mart 2018'de Google, Machine Learning Crash Course'u (MLCC) yayınlamıştır. Başlangıçta Google çalışanlarını pratik yapay zeka ve makine öğrenimi temelleri ile donatmaya yardımcı olmak için MLCC tasarlanmıştır. Aynı zamanda, kurs kamuya sunulmadan önce dünyanın çeşitli şehirlerinde Google tarafından ücretsiz TensorFlow atölyeleri başlatılmıştır.


### TensorFlow 2.0.
TensorFlow Ekibi, Eylül 2019'da kütüphanenin yeni bir ana sürümünün yayınlandığını duyurmuştur. TensorFlow 2.0 birçok yeni özellik getirmiştir. Bunlardan en önemlisi, ilk olarak Chainer ve daha sonra PyTorch tarafından popüler hale getirilen "Çalıştırmaya Göre Tanımla" şemasına geçilmiştir. Diğer önemli değişiklikler arasında eski kitaplıkların kaldırılması, TensorFlow'un farklı sürümlerindeki eğitimli modeller arasında çapraz uyumluluk ve GPU'daki performansta önemli iyileştirmeler yer almıştır.


## Özellikleri.
TensorFlow, kararlı Python (tüm platformlarda sürüm 3.7 için) ve C API'leri sağlar. Ayrıca geriye dönük uyumluluk garantisi olmadan sağlanan API'ler: C ++, Go, Java, JavaScript ve Swift (arşivlendi ve geliştirme durdu). Üçüncü taraf paketleri C #, Haskell, Julia, MATLAB, R, Scala, Rust, OCaml, ve Kristal .


## Uygulamalar.
TensorFlow'un temelini oluşturduğu uygulamalar arasında, DeepDream gibi otomatik resim yazısı oluşturma yazılımları vardır.
Ayrıca, kullanıcıların "Nöral Ağlar" konusunu gözlemleyebilmeleri ve konsepti anlamaları için "Tensorflow Playground "adında bir websitesi bulunmaktadır.


## Bibliyografya.
-  
-