Tensorflow Darboğazları kavramı nedir?


Yanıtlar:


21

Bir sinir ağındaki darboğaz, sadece altındaki veya üzerindeki katmandan daha az nöronlu bir katmandır. Böyle bir katmana sahip olmak, ağı eğitim sırasında en iyi kaybı elde etmek için özellik temsillerini mevcut alana en iyi uyacak şekilde sıkıştırmaya teşvik eder.

Bir CNN'de (Google'ın Başlangıç ​​ağı gibi), ağdaki özellik haritalarının (diğer adıyla "kanallar") sayısını azaltmak için darboğaz katmanları eklenir; bu, aksi takdirde her katmanda artış eğilimi gösterir. Bu, giriş kanallarından daha az çıkış kanalına sahip 1x1 kıvrımlar kullanılarak elde edilir.

Genellikle darboğaz katmanları için ağırlıkları doğrudan hesaplamazsınız, eğitim süreci diğer tüm ağırlıklar için geçerlidir. Bir darboğaz katmanı için iyi bir boyut seçmek, iyi çalışan ağ mimarilerini bulmak için tahmin etmeniz ve sonra denemeniz gereken bir şeydir. Buradaki amaç genellikle yeni görüntülere iyi bir genelleme ağı bulmaktır ve darboğaz katmanları, ağdaki parametrelerin sayısını azaltmaya yardımcı olurken, yine de derin olmasına ve birçok özellik haritasını temsil etmesine yardımcı olur.


Merhaba Neil! Sanırım çok basit bir sorum var, ama hala kafam karıştı. ai.stackexchange.com/questions/21172/… Bana bir cevap vermek için vaktiniz var mı?
jgauth

@jgauth: Bu sitedeki tüm soruların RSS beslemesine abone oldum ve görebildiğimi düşündüğüm tüm soruları yanıtlamaya çalışıyorum. Sorulan bir soru için doğrudan benimle iletişime geçmeye gerek yoktur. Belirli bir şey hakkında benimle iletişime geçmek isterseniz, ilgili bir soruda veya site sohbetinde yoksa bu en iyi şekilde yapılır .
Neil Slater

8

Önceden eğitilmiş bir modelin son katmanını yeniden hesaplamak istediğinizi düşünün:

Input->[Freezed-Layers]->[Last-Layer-To-Re-Compute]->Output

[Son Katman-Yeniden Hesaplama] ' yı eğitmek için, belirli bir giriş verisi için [Dondurulmuş Katmanlar] çıktılarını birden çok kez değerlendirmeniz gerekir . Zaman kazanmak için bu çıkışları yalnızca bir kez hesaplayabilirsiniz .

Input#1->[Freezed-Layers]->Bottleneck-Features-Of-Input#1

Ardından, tüm Darboğaz-Özellikler-Girdi # i'yi saklar ve doğrudan [Son Katman-Yeniden Hesaplama] 'yı eğitmek için kullanırsınız.

"İmage_retraining" örneğinin "cache_bottlenecks" işlevinden açıklamalar:

Aynı görüntüyü birden çok kez okuyacağımızdan (eğitim sırasında herhangi bir bozulma yoksa), önişleme sırasında her görüntü için darboğaz katman değerlerini bir kez hesaplarsak ve bu önbelleğe alınmış değerleri okursak, işleri çok hızlandırabilir eğitim sırasında tekrar tekrar.


5

Tensorflow darboğazı, veri tanıma ile fiili eğitim başlamadan önceki son savcılık aşamasıdır. Her eğitim görüntüsünden, eğitimin son aşamasının gerçekleşebileceği ve görüntüyü eğitim materyalinde kullanılan diğer tüm görüntülerden ayırabileceği bir veri yapısının oluşturulduğu bir evredir. Görüntünün bir parmak izi gibi.

Yeniden eğitim komutuyla ilgilidir ve adından da anlaşılacağı gibi, bu komutun yürütülmesi için ana zaman tüketicisidir. Bu darboğaz çok zaman alıcı görünüyorsa, eğitim materyali miktarından ödün verilmesi gerekebilir.

Bir komut satırı komutu olduğundan, tam algoritmayı bilmiyorum. Algoritma Github'da kod olarak kamuya açıktır, ancak sözde çok karmaşık (yürütme süresi tanım gereği çok uzun), bu tür bir cevapta yazamayacağımı düşünüyorum.

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.