Skip to content

Convolutional Neural Network Framework from scratch

Notifications You must be signed in to change notification settings

nnagibator228/NNFS_DIY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 NNFS

Convolutional Neural Network Framework from scratch

Python NumPy SciPy

Open In Colab


💼 Фреймворк для построения свёрточных нейронных сетей, реализованный с нуля

Данный проект реализован в рамках "челленджа" по предмету "Вычислительная математика" при обучении на направлении "Информатика и Вычислительная техника" на Космическом факультете в МФ МГТУ им. Н. Э. Баумана (куратор проекта - Малашин А. А.)

⚡️ Реализованные компоненты

В проекте реализованные следующие компоненты, позволяющие сформировать модель нейронной сети практически под любые нужды:

  1. Слои

    • Layer_Dense Плотный слой
    • Convolutional Слой свёртки
    • Layer_Dropout Dropout-слой
    • Reshape Слой для изменения размерности данных
  2. Функции активации

    • Activation_ReLU на базе ReLU-функции
    • Activation_Softmax на базе Softmax-функции для результирующего слоя
    • Activation_Sigmoid на базе сигмоиды
    • Activation_Linear на базе линейной зависимости (для примера)
  3. Оптимизаторы

    • Optimizer_SGD SGD оптимизаторов
    • Optimizer_Adagrad Adagrad оптимизатор
    • Optimizer_RMSprop оптимизатор RMSprop
    • Optimizer_Adam Adaptive Moment оптимизатор (ультимативное решение)
  4. Функции потери

    • Loss_CategoricalCrossentropy используется при построении модели с задачами классификации
    • Loss_BinaryCrossentropy используется при построении модели с задачами классификации
    • Loss_MeanSquaredError используется для регрессионных моделей
    • Loss_MeanAbsoluteError используется для регрессионных моделей
  5. Подсчет точности

    • Accuracy_Categorical используется при построении модели с задачами классификации
    • Accuracy_Regression используется для регрессионных моделей
  6. Класс-интерфейс модели

    Model позволяет добавлять слои в модель, производить обучение и валидацию с учетом заданных функций потерь, точности и оптимизаторов


🖥️ Пример использования

⚠ Актуальный подробный пример описан в test.py файле

Create Model object

import Model from NNFS_DIY
model = Model()

model.add(...)
...

model.set(
    loss=*Loss Class*,
    optimizer=*Optimizer Class*,
    accuracy=*Accuracy Class*
)

model.finalize()

model.train(*Input Data*, *Output Data*,
            validation_data=(*Test Input*, *Test Output*), 
            epochs=*Epochs*, 
            batch_size=*Items in batch*,
            print_every=*No of epoch*)

📑 Использованные материалы

При реализации студенты опирались на информацию и примеры кода, описанные в книге Neural Networks from Scratch in Python

ℹ️ Дополнительные ссылки

Если вам понравились материалы проекта, оставьте, пожалуйста, звездочку этому репозиторию ⭐️

About

Convolutional Neural Network Framework from scratch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages