Данный проект реализован в рамках "челленджа" по предмету "Вычислительная математика" при обучении на направлении "Информатика и Вычислительная техника" на Космическом факультете в МФ МГТУ им. Н. Э. Баумана (куратор проекта - Малашин А. А.)
В проекте реализованные следующие компоненты, позволяющие сформировать модель нейронной сети практически под любые нужды:
-
Слои
Layer_Dense
Плотный слойConvolutional
Слой свёрткиLayer_Dropout
Dropout-слойReshape
Слой для изменения размерности данных
-
Функции активации
Activation_ReLU
на базе ReLU-функцииActivation_Softmax
на базе Softmax-функции для результирующего слояActivation_Sigmoid
на базе сигмоидыActivation_Linear
на базе линейной зависимости (для примера)
-
Оптимизаторы
Optimizer_SGD
SGD оптимизаторовOptimizer_Adagrad
Adagrad оптимизаторOptimizer_RMSprop
оптимизатор RMSpropOptimizer_Adam
Adaptive Moment оптимизатор (ультимативное решение)
-
Функции потери
Loss_CategoricalCrossentropy
используется при построении модели с задачами классификацииLoss_BinaryCrossentropy
используется при построении модели с задачами классификацииLoss_MeanSquaredError
используется для регрессионных моделейLoss_MeanAbsoluteError
используется для регрессионных моделей
-
Подсчет точности
Accuracy_Categorical
используется при построении модели с задачами классификацииAccuracy_Regression
используется для регрессионных моделей
-
Класс-интерфейс модели
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
Если вам понравились материалы проекта, оставьте, пожалуйста, звездочку этому репозиторию ⭐️