NNSharp: High level C++ API deep learning-hez

2018-2019 ősz

Szoftver

Téma leírása

NNSharp logo

A feladat motivációja: A jelenlegi cutting-edge deep learning technológiák elsősorban a Python nyelvet támogatják. Azonban más nyelvek, mint a C# és a Java is rendelkeznek számos előnnyel a Pythonnal szemben, mint például a felhasználói interfészek fejlesztése vagy adatbázis technológiák integrálása üzleti alkalmazásokba. Ennek megfelelően igény van arra, hogy a tanítás eredményét (vagy esetleg magát a tanítást) ezekben a környezetekben (pl. Windows és C#) is lehessen használni. Az általam kezdeményezett NNSharp egy ilyen projekt, melyről további információ itt érhető el: https://github.com/adamtiger/NNSharp. Hosszabb távú vízió, hogy megvalósuljon egy olyan C++ high level API, ami hasonló a Kerashoz (https://keras.io/), de C++ alapú, így lehetővé tenné, hogy bármilyen nyelvben használhatók legyenek a legmodernebb library-k (Tensorflow, CNTK).

Feladat: Jelenleg az NNSharp egy C# alapú referencia implementációt tartalmaz, ami körülbelül 70%-ban lefedi a Keras API-t. A referencia implementáció arra szolgál, hogy egyszerűen átláthatóvá tegye az egyes neurális rétegek működését, valamint alapja legyen a C++ API megvalósításának és tesztelésének. Ebben a félévben a referencia implementáció kibővítése és tesztelése, valamint példák készítése a cél.

Cél: Legalább 10 réteg funkcionálisan Keras hű implementálása és dokumentálása.

Learning outcome:

  • Szoftverfejlesztés ismeretek: verzió követés (Git), continuous integration (CI)
  • Keras alapos megismerése, forráskód szinten
  • Deep learning technológiák mély megismerése (mi van a motorháztető alatt)
  • C#, Python

Maximális létszám: 1 fő