Pytorch'taki toplu boyut uyuşmazlığı, genellikle verilerin eğitim sırasında nasıl işlendiği veya yeniden şekillendirildiği ile ilgili çeşitli nedenlerden dolayı ortaya çıkabilir. İşte bazı örnekler:
1. Yanlış hedef format nedeniyle uyumsuzluk:
- Pytorch'ta, `crossentropyloss 'kullanırken, hedef bir sıcak kodlanmış vektör değil, tamsayı indeksleri olmalıdır. Hedef bir sıcak kodlanmışsa, toplu boyut uyuşmazlığı hatasına yol açabilir, çünkü model `[Batch_size] 'boyutunda bir hedef bekliyor, ancak` [Batch_Size, N_Classes]' boyutunda bir tensör alır. Örneğin, model 24 sınıftan birini öngörüyorsa, hedef, `(32,)` `(32, 24)` [1] 'in 32'lik bir parti boyutu için bir şekil tensörü olmalıdır.
2. Sorunları yeniden şekillendirme:
- Bazen, model içindeki işlemlerin yeniden şekillendirilmesi, parti boyutunu yanlışlıkla azaltabilir. Örneğin, bir tensör ilk boyutunun (parti boyutu) değiştirileceği şekilde yeniden şekillendirilirse, bu, toplu giriş boyutlarının ve hedefinin eşleşmesini bekleyen kayıp fonksiyonlarını hesaplamada bir uyumsuzluğa yol açabilir [5].
3. Datoader davranışı:
- Pytorch'un `datoader 'bazen farklı boyutlardaki grupları döndürebilir, özellikle de veri kümesi boyutu parti boyutunun bir katı değilse. Bu, `` drop_last = false`, son toplu işin belirtilen parti boyutundan daha küçük olmasına neden olduğunda olur. Tipik olarak bir parti içinde bir uyumsuzluk sorunu olmasa da, düzgün bir şekilde ele alınmazsa karışıklığa neden olabilir [3].
4. Özel veri kümesi veya model uygulaması:
- Veri veya model çıktıları doğru bir şekilde hizalanmazsa, özel veri kümeleri veya modeller yanlışlıkla toplu boyut uyumsuzluklarına neden olabilir. Örneğin, özel bir veri kümesi verileri beklenmedik bir biçimde döndürürse veya bir modelin ileri geçişi verileri parti boyutunu değiştirecek şekilde yeniden şekillendirirse, bu eğitim sırasında hatalara yol açabilir [7].
5. Kayıp işlevi gereksinimleri:
- Farklı kayıp fonksiyonlarının girdi ve hedef şekiller için farklı gereksinimleri vardır. Örneğin, `` l1loss '' her iki girişin de aynı şekle sahip olmasını gerektirir, bu da şekiller düzgün bir şekilde hizalanmazsa parti boyutu uyumsuzluklarına yol açabilir [2].
[1] https://stackoverflow.com/questions/74785188/pytorch-commerenaj-utput-and-label-shatch-us chome-
[2] https://github.com/lightning-ai/pytorch-lightning/discussions/14812
[3] https://discuss.pytorch.org/t/problem-with-uses/114363
[4] https://discuss.pytorch.org/t/test-acturacy-with-defferent-seeses/22930
[5] https://discuss.pytorch.org/t/batch-sizes-us-miscatch/98354
[6] https://stackoverflow.com/questions/62123795/mismatch-in-batch-use
[7] https://discuss.pytorch.org/t/batch-sizes-catch/187427
[8] https://github.com/lightning-ai/pytorch-lightning/issues/3668