Донавчання моделі за допомогою Elixir
Нещодавно я експериментував із донавчанням моделей в elixir. Я вирішив відтворити туторіал fast.ai який донавчає модель для розпізнавання птахів. Разом з мовою та livebook це дуже просто зробити.
Цей пост це збірка нотаток про його розробку.
- Спочатку я хотів використати бібліотеку EMLX для використання MLX як бекенд для NX. Але мені вдалося змусити його працювати лише для класифікації без файн тюнінгу, тож це залишеться на майбутне.
- У виклику
chunk_everyя використовую discard, щоб уникнути додаткового заповнення даних для навчання/тестування, оскільки мої набори даних не розділені рівномірно. - Оскільки специфікація моделі вже мала класи, все що мені потрібно було зробити, це замінити їх на свої власні.
- Зображення в датасеті вже мають розмір 224x224, тому нема потреби змінювати їх розмір. Якщо ваші зображення відрізняються, вам потрібно використати
Nx.reshapeабо змінити їх розмір. - Я витратив багато часу на дебаг, щоб з’ясувати, що проблема полягала у формі потоку даних який я завантажував. Це має бути stream з частинами/чанками.
Livebook на github та датасет на huggingface