Keras Yazar: TF 2.0 + derinlemesine inceleme ve araştırma Keras Bilmeniz gereken 12 şey

[Xinzhiyuan Kılavuzu] Keras yazarı François Chollet bugün bir dizi tweet yayınladı Derin öğrenme araştırması için TensorFlow 2.0 + Keras kullanıyorsanız, bilmeniz gereken her şey burada.

TensorFlow 2.0, birkaç gün önce yayınlandı ve ilk olarak Alpha sürümü kullanılabilir. Yeni sürümün kullanımı kolay ve genişletilebilir, API'yi büyük ölçüde basitleştirir.

Keras yazarı François Chollet, bugün TensorFlow 2.0 + Keras'ı kullanmak için bazı önemli teknikleri 12 örnekle açıklayan bir dizi tweet yayınladı.

Derin öğrenme araştırması için TF 2.0 + Keras kullanıyorsanız, bilmeniz gereken her şey burada.

François Chollet tarafından Keras

1) Bilmeniz gereken ilk sınıf "Katman" dır. Bir Katman, bir durumu (ağırlık) ve bazı hesaplamaları ("çağrı" yönteminde tanımlanan) içerir.

2) "add_weight" yöntemi, ağırlıkların oluşturulması için bir kısayol sağlar.

3) Ağırlıkları ayrı bir "inşa" yönteminde oluşturmak ve bu yöntemi katmanınız tarafından görülen ilk girişin şeklini kullanarak çağırmak en iyisidir. Bu mod, bizi "input_dim" belirtme zorunluluğundan kurtarır:

4) GradientTape'de katmanı çağırarak katmanın ağırlık gradyanını otomatik olarak alabilirsiniz. Bu degradeleri kullanarak, katmanın ağırlığını manuel olarak veya optimize edici nesneyi kullanarak güncelleyebilirsiniz. Elbette, degradeleri kullanmadan önce bunları değiştirebilirsiniz.

5) Katmanlar tarafından oluşturulan ağırlıklar eğitilebilir veya eğitilemez olabilir. Eğitilebilir olup olmadığı, katmanın "trainable_weights" ve "non_trainable_weights" özelliklerinde görülebilir. Örneğin, bu, eğitilemeyen ağırlıklara sahip bir katmandır:

6) Katmanlar, daha büyük hesaplama blokları oluşturmak için özyinelemeli olarak yuvalanabilir. Her katman, alt katmanlarının ağırlıklarını (eğitilebilir ve eğitilemeyenler dahil) takip edecektir.

7) Katman, ileri geçiş sırasında bir kayıp yaratacaktır. Bu, özellikle düzenlilik kayıpları için kullanışlıdır. Alt katman tarafından oluşturulan kayıp, ana katman tarafından özyinelemeli olarak izlenir.

8) Bu kayıplar her ileri geçişin başlangıcında üst katman tarafından temizlenir - birikmezler. "Layer.losses" her zaman yalnızca "son" ileri geçişte meydana gelen kayıpları içerir. Bir eğitim döngüsü yazarken, genellikle bu kayıpları toplamanız gerekir.

9) TF 2.0, varsayılan olarak isteklidir. Ancak hesaplamaları statik grafikler halinde derleyerek daha iyi performans elde edilebilir. Statik resim, araştırmacının en iyi arkadaşıdır! Herhangi bir işlevi bir tf işlevinin içine alarak derleyebilirsiniz:

10) Bazı katmanlar, özellikle "BatchNormalization" katmanı ve "Dropout" katmanı, eğitim ve çıkarım sırasında farklı davranışlar sergiler. Bu tür katmanlar için standart uygulama, "çağrı" yöntemine bir "eğitim" (boolean) parametresi eklemektir.

11) Yoğun katmanından Conv2D katmanına, LSTM katmanına, Conv2DTranspose veya ConvLSTM2D'ye kadar birçok yerleşik katman mevcuttur. Bu yerleşik işlevleri yeniden kullanmayı öğrenmelisiniz.

12) Bir derin öğrenme modeli oluşturmak için her zaman nesne yönelimli programlamayı kullanmak zorunda değilsiniz. Şimdiye kadar gördüğümüz tüm katmanlar işleve göre şu şekilde birleştirilebilir (buna "İşlevsel API" diyoruz):

İşlevsel API'ler, alt sınıflara göre daha özlü olma eğilimindedir ve başka avantajlara sahiptir.

Functional API hakkında daha fazla bilgi edinin:

https://www.tensorflow.org/alpha/guide/keras/functional

Ancak, lütfen işlevsel API'lerin yalnızca DAG katmanlarını tanımlamak için kullanılabileceğini unutmayın - özyinelemeli ağlar "Katman" alt sınıfları olarak tanımlanmalıdır.

Araştırma çalışmanızda, kendinizi çoğu zaman OO modellerini ve işlevsel modelleri karıştırırken ve eşleştirirken bulabilirsiniz.

Yukarıdakiler, çoğu derin öğrenme araştırma makalesi için gereken tüm içeriği yeniden uygulamak için TensorFlow 2.0 + Keras'ı kullanmaktır!

Şimdi çok basit bir örneğe bakalım: hiper ağlar .

Bir hiper ağ, ağırlıkları başka bir ağ tarafından oluşturulan (genellikle daha küçük) derin bir sinir ağıdır.

Çok basit bir hiper ağ uygulayalım: Daha önce tanımlanan "Doğrusal" katmanı kullanacağız ve onu başka bir "Doğrusal" katman oluşturmak için kullanacağız.

Başka bir hızlı örnek: VAE'yi alt sınıflandırma veya işlevsel API olmak üzere herhangi bir tarzda uygulayın. Size en uygun yöntemi bulun!

alt sınıflandırma

Fonksiyonel API

Son olarak, bu kod örneklerini bu Colab not defterinde kullanabilirsiniz:

https://colab.research.google.com/drive/17u-pRZJnKN0gO5XZmq8n5A2bKGrfKEUg

171.800 RMB'den başlayan yüksek kaliteli MG HS, 30T modelinin satış öncesi fiyatını açıkladı
önceki
Kadın hakaret etti, polis karakolu amirini haksız yere suçladı ve evde ailesini tehdit etti! Kamu Güvenliği Bürosu istifa etti: gözaltı!
Sonraki
Weimar EX5 yakında teslim edilecek, üç elektrikli sistemine bir göz atalım
Deep Learning Winter Theory'nin yazarı yine muhteşem bir makale yayınladı: AI, blockchain gibi bir çıkmaz
Dünya Kupası'na katılmaya hak kazanan 14 takımın listesi: Avrupa'da 10 sandalye var, Almanya dışarıda, Brezilya ölü yarıda
Fazla hile! 100 milyon yuan'de büyük miktarda para bir gecede kayboldu
Animasyonlu bir resim, Güney Kore'nin neden kazanabildiğini ortaya koyuyor ve oyuncular, vurulduktan sonra hala topun yönünü izliyor.
Chery Arrizo GX, 79.900 yuan'dan başlayarak ön satışa çıkacak ve yerel A + sınıfı sedanın başyapıtı olabilir mi?
İlkbahar İşe Alım Fırsatı: 2019 Uluslararası Büyük Fabrika Yapay Zeka Eğitim Programı Staj Başvuru Kılavuzu (iş listesi ekli)
Roket Ordusu yanıyor!
BMW'nin yeni X4'ü piyasada, fiyatı X3 ile karşılaştırmanın bir anlamı yok
Ünlü insanlar Almanya'nın dip noktasından bahsediyor, Han Qiaosheng Almanya'nın yapamayacağını iç çekiyor, Dong Lu: Suçu aşk alıyor
Ping An Bankın yıl sonu bonusu 1 RMB 5 Yerel tiranın bankacılık endüstrisi artık "fakir ağlıyor"!
Rehineler kaçtıktan sonra şüpheli intihar etmekle tehdit etti! Asayiş şefi eli boş bir bıçak kapıyor ...
To Top