Многослойный персептрон Keras: в каком виде должны подаваться данные на вход нейронной сети?

682 просмотра
0
0 Комментариев

Доброго времени суток.

Пытаюсь освоить библиотеку Keras. Посмотрел различные примеры типа MNIST, Cifar10 и подобные «Hello, world!» примеры обучения нейронных сетей. Однако из этих примеров непонятно, как обучить нейронную сеть на собственном наборе данных. Допустим, я хочу создать многослойный персептрон. Добавление слоев, компиляция модели и ее обучения более-менее понятны, на данный момент непонятно одно: в каком виде должны подаваться данные на вход нейронной сети? То есть что представляют из себя те же X_train, y_train, X_test, y_test из примеров с обучением на наборе MNIST?

Буду благодарен любому примеру, дающему понимание работы с нейронными сетями в Keras.


Добавить комментарий

2 Answers

Python Опубликовано 12.12.2018
0

В MNIST данные подаются в таком виде:

X_train — это массив изображений, каждое изображение 28×28 пикселов, т.е. 784.

y_train — это массив чисел от 0 до 9, результаты по которым тренируется CNN собственно.

В тест сете все так же, только там происходит не тренировка, а получение и проверка результатов.

Можно взять готовый код, например, https://github.com/keras-team/keras/blob/master/examples/mnist_cnn.py и изучить все данные с помощью

print(X_train.shape)
print(y_train.shape)

Добавить комментарий
0

Обычно на вход нейронным сетям подается вектор (1D) или N-мерная матрица которые содержат числовые значения в ячейках.

Алгоритмы машинного обучения основанные на методе градиентного спуска ожидают нормализованные (с медианой нормального распределения в области 0 и приблизительно одинаковыми значениями стандартного отклонения до 1) значения по всем осям (features) матрицы. Иначе метод градиентного спуска может не сойтись или сходиться очень медленно или алгоритмы будут делать плохие предсказания.

Т.е. в тех случаях, когда в разных столбцах находятся данные разных порядков (например в одном столбце диапазон значений: [0, 1], а в другом: [0, 107] ) очень часто входные матрицы приходится нормализовать, т.е. приводить к диапазону: [0, 1] или [-1, 1].

Сравнение различных методов нормализации данных

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up