TensorFlow keras'a daha neler sunuyor?


16

Keras'ın TensorFlow için üst düzey bir arayüz olarak hizmet verdiğinin farkındayım.

Ama bana öyle geliyor ki, keras kendi başına birçok işlevsellik yapabilir (veri girişi, model oluşturma, eğitim, değerlendirme).

Ayrıca, TensorFlow'un işlevselliğinin bir kısmı doğrudan keralara taşınabilir (örneğin, keralarda bir tf metrik veya kayıp fonksiyonu kullanmak mümkündür).

Sorum şu: TensorFlow, keralarda çoğaltılamayan ne sunuyor?

Yanıtlar:


15

Derin Öğrenme çerçeveleri 2 soyutlama düzeyinde çalışır:

  • Alt Seviye : Burası Tensorflow, MXNet, Theano ve PyTorch gibi çerçevelerin oturduğu yerdir. Bu, Genelleştirilmiş Matris-Matris çarpımı gibi matematiksel işlemlerin ve Evrişimsel işlemler gibi Yapay Sinir Ağı ilkellerinin uygulandığı düzeydir.
  • Yüksek Seviye : Burası Keras gibi çerçevelerin oturduğu yerdir. Bu Seviyede, Katmanlar ve modeller gibi Sinir Ağı soyutlamasını uygulamak için daha düşük seviyeli ilkeller kullanılır. Genel olarak, bu seviyede model tasarrufu ve model eğitimi gibi diğer yararlı API'ler de uygulanır.

Keras ve TensorFlow'u karşılaştıramazsınız çünkü farklı soyutlama seviyelerine otururlar. Ayrıca, Keras kullanma deneyimimi paylaşmak için bu fırsatı değerlendirmek istiyorum:

  • Keras'ın sadece temel Derin Öğrenme çalışmaları için yararlı olduğunu kabul etmiyorum. Keras güzel yazılmış bir API. API'nın işlevsel doğası size tamamen yardımcı olur ve daha egzotik uygulamalar için yolunuzdan çıkar. Keras, daha düşük düzeydeki çerçevelere erişimi engellemez.
  • Keras çok daha okunabilir ve özlü bir kodla sonuçlanır.
  • Keras modeli Serileştirme / Diziselleştirme API'leri, geri çağrılar ve Python jeneratörleri kullanarak veri akışı çok olgun.
  • Keras, TensorFlow için resmi üst düzey soyutlama ilan edildi.

9

Keras'ta arka uç olarak TensorFlow'u kullanırsanız, az çok aynı işlevselliği paylaşırlar. keras.backendSizin aracılığınızla bir erişim TensorFlow işlevi, tf.keraskeras'ın tüm API'sına TensorFlow aracılığıyla erişebilirsiniz.

Bu durumda, ben keras ile sopa öneririz ve bir şey eksik bulursanız (örneğin bir metrik veya kayıp fonksiyonu) TensorFlow yoluyla alabilirsiniz.


5

Dediğiniz gibi Keras tüm işlevselliği içerir, ancak kutunun dışında sadece CPU'da çalışır. TensorFlow veya CNTK (kişisel olarak tercih ettiğim) gibi bir arka uç takarak, bazı ML iş yüklerini, özellikle DL iş yüklerini büyük ölçüde hızlandırabilen GPU'nun gücünün kilidini açarsınız. Ayrık bir GPU'nuz yoksa, faydaları minimumdur.

Uygulamada çoğu zaman arka ucunuzu ayarlayıp unutabilir ve tamamen Keras içinde çalışabilir, hatta arka ucunuzu başka biriyle değiştirebilir ve performansı karşılaştırabilirsiniz. Bu nedenle, doğrudan daha düşük bir seviyede kodlamak istemiyorsanız TF'nin özelliklerini öğrenmeye gerek yoktur.


5

TensorFlow'un Keras'tan daha düşük seviyeli bir kütüphane olduğu göz önüne alındığında, bunun ekstra esneklik ve gelişmiş performans sunduğunu göreceksiniz (nispeten küçük de olsa, çoğunlukla kodunuzu nasıl yazdığınıza bağlıdır). Eğer araştırma yapıyorsanız veya yeni sinir ağları geliştiriyorsanız, TensorFlow bilgisi çok faydalı olacaktır. Bunun dışında, bir arka uç olarak TensorFlow'un nasıl çalıştığını anlamak yine de yararlı olabilir, ancak Keras ile iyi olmalısınız.

Ancak, bir süre önce, Keras ve TensorFlow'un daha entegre hale geleceğini okudum, bu da hayatı sizin için çok daha kolay hale getirecek.

Açıkçası bu sadece benim kişisel görüşüm, bu yüzden size kendi makalelerinizi okuyabilmeniz için bazı ekstra makalelere işaret etmek istiyorum. Kaggle hakkındaki bu tartışma, argümanlara ve hangisinin ne zaman kullanılacağına dair büyük bir genel bakış sunar. Bu konuda orta gönderi .


5

Her yeni başlayanın bu sorgusu vardır. Her zaman Keras'ın veri girişi, model oluşturma, eğitim, değerlendirme gibi temel işlevleri daha az kod satırında çözdüğü görülmektedir.

Ancak daha sonra sıfırdan bir ML modeli geliştirmeye başladığınızda, NN'ye çok fazla matematik programlayabileceğinizi ve tensorflow kütüphanesinin bu kavramları pratik hale getirmesi için birçok işlevsellik ve kontrol sağladığını fark edersiniz. Öğrenmenin matematiksel yönleri, tf kullanılarak yapılan NN kullanılarak kolayca görselleştirilebilir ve yapılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.