Вопрос

В настоящее время я изо всех сил пытаюсь понять, как я должен обучить свою регрессионную сеть с помощью керас. Я не уверен, как я должен передать свои входные данные в сеть.

Как входные данные, так и выходные данные хранятся в виде списка массивов Numpy.

Каждый входной массив Numpy - это матрица, которая имеет (400 строк, x столбцы) Каждый вывод Numpy Array - это матрица, которая имеет (x количество строк, 13 столбцов)

Таким образом, входной размер 400, а выход - 13. Но как мне передать каждый из этих наборов в списке в обучение?

# Multilayer Perceptron
model = Sequential()    # Feedforward
model.add(Dense(3, input_dim=400, output_dim=13))
model.add(Activation('tanh'))
model.add(Dense(1))
model.compile('sgd', 'mse')

Я знаю, что Model.Fit обучает модель, учитывая параметр, то, как он на самом деле принимает данные, кажется мне немного как магия, и как он знает, что столбцы матрицы А должны быть сопоставлены ряды матрицы B, что должно быть Сделано для всей матрицы, добавлено к списку.

Это было полезно?

Решение

Если вы посмотрите на документацию Keras, вы заметите, что для первых слоев последовательной модели требуется необходимый вход. Так, например, ваш первый слой представляет собой плотный слой с входным размером как 400. Следовательно, каждый вход должен быть массивом Numpy размером 400. Вы можете пройти 2D Numpy массив с размером (x, 400). (Я предполагаю, что x - это количество входных примеров). Ваш вывод имеет 13 измерений для каждого выходного документа, и, следовательно, ваш последний плотный слой должен быть model.add(Dense(13)) вместо модели. Адд (плотный (1)).

Приходя к тому, как он знает, он требует первого измерения x в виде количества обучающих примеров и второго измерения в качестве размера каждого примера. Аналогично для выходного слоя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top