TensorFlow-2.X-Ogretici-Notebooklar-Turkce
TensorFlow-2.X-Ogretici-Notebooklar-Turkce copied to clipboard
TensorFlow 2.X hakkında (Türkçe) öğretici notebooklar paylaşıyorum. Repoyu yararlı bulursanız yıldızlayarak destek olabilirsiniz :)
TensorFlow 2.X Öğretici Notebooklar Serisi
NOT
Bazı notebooklarda kullandığım TensorFlow-Addons Mayıs 2024'te hayatının sonuna gelecektir. Belli fonksiyonlar zamanla Keras içine entegre edilecektir. Major değişimler olduğu sürece güncellemelere devam edeceğim.
Videolar
1 saatte TensorFlow Hub ile Dengesiz Veriseti Sınıflandırma - Focal Loss Giriş
- https://www.youtube.com/watch?v=SRBCuTAnvSg
1 Saatte TensorFlow ile Görüntü Sınıflandırma | ANN - CNN - Transfer Learning
- https://www.youtube.com/watch?v=WW-BUMADPtQ&
TF-Keras Sıfırdan Loss Yazma - Focal Loss ve Class Weight İlişkisi
- https://www.youtube.com/watch?v=ooEvgEQhXcQ
Genel Bakış - Mevcut Olanlar
Detaylı Açıklamalar
0 - TensorFlow'a Giriş
- TensorFlow Nedir? TensorFlow ve GPU
- Tensörlere Giriş
- Tensör nedir?
- Arraylerle arasındaki fark nedir?
- Tensörlerin Bilgilerine Erişmek
Shape,rankvesizenedir?
- Tensör Operasyonları
- Matematiksel işlemler
- Matris çarpımı
tf.transpose()vetf.reshape()
- Tensör veri tipini değiştirmek
- İstatistiksel işlemler
assignveadd_assignfonksiyonları
- Tensörleri Birleştirmek
tf.concat()vetf.stack()
- Diğer Tensör Operasyonları
tf.eye(),tf.reverse(),tf.roll()vetf.unique_with_counts().
- Tensörler ve Numpy
- Tensörleri NumPy arraylerine dönüştürmek
- @tf.function ve AutoGraph
- TF1.X graf objesi ve TF2.X yenilikleri
1 - TensorFlow - Keras ile Lineer Regresyon ve Patlayan Gradyanlar
- Normal Lineer Regresyon
- Gradyan Patlaması Sorunu
- Gradient Clipping ve Adaptive Optimizer
- AdaGrad, RMSProp ve Adam Optimizerları Nedir?
- Matematiksel gösterimleriyle arasındaki ilişki
- Modele Dense Layer Eklemek
2 - Lineer Olmayan Regresyon, Aktivasyonlar ve Layer Subclassing
- Normal Lineer Regresyon
- Aktivasyon Fonksiyonları
- Sigmoid, Tanh, Softmax, ReLU, Leaky ReLU ve Swish aktivasyonları
- Aktivasyonları kullanarak aynı modeli yazmak
- Aktivasyonların plot edilip performansının karşılaştırılması
- Custom Layer Yazmak - Layer Subclassing
3 - TF-Keras ile CNN - Bir Input İki Model Yaklaşımı
- Fashion MNIST Verisini Yükleme
- Basit CNN Modeli Yazmak
- 2 tane Conv2D Layerı ve 2 tane Dense Layer
- Flatten ve GlobalMaxPooling Arasındaki Fark
- Arka planda nasıl hesaplanıyorlar?
- Functional API ile Bir Inputu İki Farklı Şekilde Kullanmak
- Modeli plot ederek daha iyi görmek
- Confusion Matrix ve Classification Report Yazdırmak
4 - DenseNet121 ve Çoklu Optimizer Yaklaşımı
- Kütüphaneler
- Veriyi Yükleme ve Normalize Etme
- Preprocessing Layerları
- Transfer Learning Nedir?
- Önceden Eğitilmiş Modeli Doğrudan Kullanmak
- Önceden Eğitilmiş Modelleri Özellik Çıkarıcı (Feature Extractor) Olarak Kullanmak
- Önceden Eğitilmiş Modelin Son Katmanlarını -Fine Tune- Etmek
- Başlangıç Noktası Olarak Önceden Eğitilmiş Bir Model Kullanmak
- Optimizerlar
- RAdam
- Lookahead
- LazyAdam
- Multi-Optimizer Wrapper - TensorFlow Addons
- Modelin Test Setindeki Başarısı
5 - Detaylı Transformer Anlatımı - CNN ile Ensemble
Kütüphaneler
- TensorFlow - Keras
- TFDS:
wikipedia_toxicity_subtypesverisetinin yüklenmesi. - TensorFlow Addons
- Plotly
- Sklearn
- Matplotlib - Seaborn
Verisetinin İşlenmesi
Kullanılan fonksiyonlar:
tf.strings.regex_replacetf.strings.lowertf.one_hot- Cümleler için Max Uzunluk Seçilmesi
TextVectorizationLayerının Kullanılması
Attention, Multihead Attention Nedir?
- RNN Yapılarının Yüzeysel Üstünden Geçilmesi
- Vektör - Dizi Modelleri (Vector-to-Sequence)
- Dizi - Vektör Modelleri (Sequence-to-Vector)
- Dizi - Dizi Modelleri (Sequence-to-Sequence)
- RNN'lerdeki Sorun ve Transformer ile Karşılaştırma
- Word Embedding
- Positional Encoding
- Transformer Neden Buna İhtiyaç Duyuyor?
- Cümle Uzunluğuna Göre Vektörler Tanımlamak
- Normalize Vektörler Kullanmak
- Attention Is All You Need --> Önerilen Çözüm
- 3D Plotlar ile Çözümün Açıklanması
- Transformer Mimarisine Giriş
- Kısaca Attention Nedir?
- Self-Attention Nedir?
- Transformerdaki MultiHeadAttention Nedir?
- Key, Value, Query Kavramları
- Adım Adım Matris İşlemleri
- Attention Filter
- Multihead ve Attention Head Açıklaması
Transformer Modelinin Yazılması
- Transformer Encoder Kısmının
tf.keras.layers.LayerOlarak Yazılması - Word + Positional Embeddinglerinin
tf.keras.layers.LayerOlarak Yazılması
Ana Modelin Functional API ile Yazılması
- Transformer Mimarisinin Eklenmesi
- 1D CNN Yapılarının Eklenmesi
- Çıktıların Birleştirilmesi
6 - tf.data, tf.image, tfa.image, MiniDenseNet, RAdam Part 1-2
- Veri Yükleme
tf.data.Dataset.list_files()Kullanımı
- tf.data Pipeline
- tf.data pipeline'ı oluşturup, tf.image ve tfa.image kullanarak farklı dönüşümler uygulamak.
- Modeli Oluşturmak
- Mini DenseNet ve Layer Subclassing kullanmak
- Modeli custom training loop kullanarak eğitmek
- Loss ve Accuracy
- Training loop kullanarak toplanan loss ve accuracy değerlerini plot edip görmek
- Model Performansı
- Modelin performansını görmek için confusion matrix ve classification report kullanmak
6.1 - Notebook X + GradCAM
Notebook 6'yı tamamen kapsayıp ek olarak Grad-CAM anlatımı mevcuttur.
- Grad-CAM
- Neden GradCAM'e ihtiyaç duyarız?
- GradCAM Nedir?
- GradCAM'i test setinde denemek

7 - Softmax Çıktıları ve -Adversarial Attack-
- fashion_mnist Verisetini Yükleyip Hazırlamak
- tf.one_hot()
- tf.cast()
- prefetch()
- Basit Bir CNN Yazmak
- Conv2D()
- MaxPooling2D()
- Resimlere Basit Noise Ekleyip Tahmin Almak
- Noise ve Etkilenen Softmax Çıktıları
- InceptionResNetV2'de Aynı Noise Yaklaşımını Test Etmek
- 55M Parametresi Olan InceptionResNetV2
- Noise ve InceptionResNetV2
- tf.GradientTape
- tape.watch()
- optimizer.apply_gradients()
- InceptionResNetV2'ye Adversarial Attack
- Özel Bir Noise Vektörü Oluşturmak
- Sonucu Görselleştirmek
