Şimdi soru, alt örnekleme ayrıcalıklarının olmadığı büyük görüntü boyutlarının nasıl ele alınacağıdır
Aşağı örnekleme ile girdiyi CNN'ye geçirmeden önce ölçeklemek anlamına geldiğini varsayıyorum . Evrişimli katman , bir sonraki katmanlar için kaynakları kaydedecek olan büyük bir adım seçerek bir ağ içindeki görüntünün altörneklenmesine izin verir. Aslında, yapılması gereken budur, aksi takdirde modeliniz GPU'ya sığmaz.
1) Eğitilecek bu kadar büyük görüntüleri işlemek için herhangi bir teknik var mı?
Genellikle araştırmalar görüntüleri resonable bir boyuta ölçeklendirir. Ancak bu sizin için bir seçenek değilse, CNN'nizi kısıtlamanız gerekir. Erken katmanlarda altörneklemeye ek olarak, FC katmanından (normalde parametrelerin çoğunu alan) kurtulmanızı öneririm evrişimsel katman lehine . Ayrıca, GPU'nuza uymayacağı için verilerinizi her çağda yayınlamanız gerekir.
Bunların hiçbirinin, girişlerin çok büyük olması nedeniyle erken katmanlarda ağır hesaplama yükünü engellemeyeceğini unutmayın: evrişim pahalı bir işlemdir ve ilk katmanlar her ileri ve geri geçişte çok fazla performans gösterecektir . Kısacası, eğitim yavaş olacaktır.
2) Hangi parti boyutunu kullanmak mantıklıdır?
İşte başka bir sorun. Tek bir resim çeker2400x2400x3x4
(3 kanal ve piksel başına 4 bayt), bu da ~ 70Mb'dir, bu nedenle toplu iş boyutu 10'u bile ödeyemezsiniz. Daha gerçekçi olarak 5 olur. Belleğin çoğunun CNN parametreleri tarafından alınacağını unutmayın. Bu durumda 32-bit yerine 16-bit değerleri kullanarak boyutu küçültmenin mantıklı olduğunu düşünüyorum - bu şekilde partileri ikiye katlayabileceksiniz.
3) Yapabileceğim herhangi bir önlem veya donanım kaynaklarında herhangi bir artış ve azalma var mı?
Darboğazınız GPU hafızasıdır. Başka bir GPU satın alabiliyorsanız, alın ve ağı ikiye bölün. GPU belleğine kıyasla diğer her şey önemsizdir.