/i/Yazılım

Umuyoruz ki geleceğin yazılımcıları bu altinciden çıkacak!
  1. 1.
    +2
    Panpalarım bu ara yapay nöral ağ işine taktım gerçekten çok büyük potansiyeli var harika şeyler yapılabiliyor. C# ile bir nöral ağ simülasyonu kodu yazdım istediğim boyda ve katman sayısında nöral ağı yapıp eğitebiliyorum. Ufak nöral ağları sorunsuzca eğitiyorum ama büyük nöral ağların eğitimi çok uzun sürüyor.

    100x100 piksellik alanda çizilen sayıyı tanıyacak şekilde nöral ağımı eğitmek istedim, böyle bir şey için 10000 giriş (her bir piksel için bir tane) nöronuna, en az 10000 gizli katman nöronuna ve 10 tane de çıkış (her bir rakam için bir tane) nöronuna ihtiyacım vardı.

    Yukarıda bahsettiğim büyüklükteki ağın eğitilmesi için Intel Core i7 6700 işlemcimle yaklaşık 90 dakikadır bekliyorum, sadece 20 tane örnek ve her bir örnek için 100000 tekrar bu kadar uzun sürmemeli.

    Nöral ağı C ile yazıp iyi bir optimizasyon da yapabilirdim ama ihtiyacım olan hız kazanımı birkaç kat değil, en az 500 kat. Bu kadar büyük bir hız kazanımını optimizasyonla veya Assembly veya C ile yazarak sağlamam mümkün değil.

    işlemcim de iyi, kodda da sorun yok neden bu kadar yavaş çalışıyor bu?

    Bir diğer sorunum da nöronlarda kullandığım sigmoid aktivasyon fonksiyonu çok büyük sayılarda otomatik olarak 1 olarak dönüyor, bu yüzden nöral ağımda çok fazla nöron olursa sonuç sapıtıyor.

    Bu işlerden anlayan birileri varsa aydınlatsın beni.

    Edit: Koddaki gereksizlikleri düzeltip sıfırdan yazınca beklemediğim kadar yüksek bir hız kazancı elde ettim, aktivasyon fonksiyonunun yüksek sayılarda 1 olarak dönmesi sorununu da sayıyı limitleyerek (Arduino'daki map gibi) çözdüm şu an müthiş çalışıyor yardım eden etmeyen herkese teşekkürler.

    Hatta az önce basit bir rakam tanıma sistemi yaptım birkaç el yazısı rakamı sisteme yükledim şu anda %97 doğrulukla girdiğim her rakamı biliyor bu yapay nöral ağlar müthiş bir şey.

    Edit 2: Nöral ağı C ile yeniden yazdım beklediğimden çok daha fazla performans artışı sağladım. JIT sanal makinesinin ağırlığından kurtuldum sonunda.
    ···
  1. 2.
    +1
    ya bak iste öyle olmuyo ben baya araştırdım
    ···
    1. 1.
      +1
      Bu nereye kayboldu
      ···
    2. 2.
      0
      Neredesin ay yüzlüm
      ···
    3. 3.
      0
      En iyi dostlarımdandı rahmetli
      ···
    4. diğerleri 1
  2. 3.
    0
    belki kod çoktur mk hiçbişey anlamadım
    ···
  3. 4.
    0
    panpa c# ta bu işler nasıl yürüyor bilmiyorum fakat genelde bi framework üzerinden yaparsın python da misal. kullandığın framework ü gözden geçir, kullanmıyorsan da bi framework araştır bence :(

    Özet: amarigayı yeniden keşfetmeye gerek yok, varolan alternatiflerini tekrar gözden geçir bence.
    ···
    1. 1.
      0
      Panpa nedense yapay nöral ağ kodunu kendim yazmak istiyorum, zaten kendim yazmazsam geriye yapacağım bir şey de kalmıyor. Nöral ağ her şeyi kendi öğrenip yapıyor, nöral ağı da ben yapmazsam programa hiçbir katkım olmamış oluyor.

      Şimdilik sorunların çoğunu çözdüm neyse ki, cayır cayır çalışıyor artık.
      ···