Как мне решить, какие аргументы использовать для конструктора слоев KERAS Dense? - PullRequest
0 голосов
/ 08 июля 2019

Я [очевидно] новичок в этом и пытаюсь выполнить множественную целевую регрессию с помощью керас, используя this в качестве руководства, но у меня возникли проблемы. У меня одна проблема - как инициализировать плотный слой в строке model.add(Dense(input_dim=4, output_dim=500)). Я думаю, что input_dim=4 из-за массива XX_train, имеющего 4 столбца, но я не уверен. Мне также непонятно, почему output_dim=500. Откуда берется значение 500? Это произвольно?

Я взглянул на документацию keras здесь , в которой вместо этого используется параметр input_shape, но я не уверен, какие значения следует использовать для параметров units и input_shape. Очевидно, input_shape нужно передать только для первого уровня, но для всех последующих уровней аргумент units должен всегда иметь одинаковое значение (32 в примере, показанном в ссылке)? Документация определяет единицы как: «единицы: положительное целое число, размерность выходного пространства», но я должен признать, что я не уверен, что это значит. Означает ли это, что если я пытаюсь предсказать значения 8 объектов (y_train, y_test), units=8?

В этом говорится, что мне нужно передать input_shape только в первый слой, но в нем не указано, как определить эту форму.

Что я пытаюсь сделать: у меня есть 11 столбцов и тысячи строк данных. Я пытаюсь использовать 3 из этих столбцов как функции, чтобы предсказать другие 8 (которые помечены). Я, вероятно, упускаю что-то очевидное, но кто-то может указать мне правильное направление? Насколько я знаю, множественная целевая регрессия может даже не быть подходящим способом.

Спасибо за любую помощь. Приношу свои извинения за мою очевидную суетливость. Пожалуйста, дайте мне знать, если мне нужно предоставить больше информации.

1 Ответ

1 голос
/ 08 июля 2019

model.add (Плотный (input_dim = 4, output_dim = 500)). Я думаю, что input_dim = 4 из-за массива XX_train, имеющего 4 столбца, но я не уверен

Да, это правильно. Input_dim равен 4, потому что XX_train имеет 4 столбца.

Откуда берется значение 500? Произвольно?

Это найдено опытным путем.

Означает ли это, что если я пытаюсь предсказать значения 8 функций (y_train, y_test), ед. = 8?

Да, это правильно.

Что я пытаюсь сделать: у меня есть 11 столбцов и тысячи строк данные. Я пытаюсь использовать 3 из этих столбцов в качестве функций, чтобы предсказать другие 8 (которые помечены). Я, наверное, упускаю что-то очевидное, но может ли кто-нибудь указать мне правильное направление?

Фрагмент кода, просто как отправная точка.

from keras.layers import Dense, Activation
from keras.models import Sequential

model = Sequential()
model.add(Dense(32, activation='relu', input_dim=3))
model.add(Dense(64, activation='relu')) # add more layers as necessary
model.add(Dense(8))
model.summary()  # use summary() to verify model architecture
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...