Огляд проєкту
Цей проєкт став практичним кроком у вивченні Python AI/ML стеку. Описав та створив архітектуру моделі для задачі комп’ютерного зору та класифікації рукописних цифр.
Процес розробки та тренування
Головний фокус був на розумінні повного циклу машинного навчання, від підготовки даних до оптимізації результатів:
- Створення моделі: Спроектував базову архітектуру нейронної мережі та налаштував пайплайн обробки даних.
- Аугментація: Натренував модель на датасетах MNIST із застосуванням аугментації даних. Це дозволило штучно розширити навчальну вибірку, підвищити стійкість моделі до спотворень та ефективно запобігти перенавчанню.
- Тестування та оптимізація: Провів кілька тестів з різними підходами та параметрами, завдяки чому суттєво покращив та стабілізував процес тренування.
Завдяки використанню аугментації та ітеративному покращенню пайплайну навчання, фінальна точність моделі сягнула 98%.
Приклад коду цилку тренування з репо
for epoch in range(epochs):
model.train()
running_loss = 0.0
for batch_idx, (images, labels) in enumerate(train_loader):
images, labels = images.to(device), labels.to(device)
optimizer.zero_grad()
outputs = model(images)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
running_loss += loss.item()
print(f'Epoch [{epoch + 1}/{epochs}], Loss: {running_loss / len(train_loader):.4f}')