Что input_shape, input_dim и единицы указывают или значат при добавлении слоев в Keras? - PullRequest
0 голосов
/ 21 марта 2020

Я новичок в keras, и мне было интересно, смогу ли я сделать некоторую работу по классификации текста с использованием нейронных сетей. Итак, я пошел дальше и получил набор данных о спаме или ветчине, и я векторизовал данные с помощью tfidf и преобразовал метки в массив numpy с помощью to_categorical () и сумел разделить мои данные на поезд и протестировать каждый из которых является numpy массив, имеющий около 7 тыс. Столбцов. Этот код я использовал.

model.add(Dense(8,input_dim=7082,activation='relu'))
model.add(Dense(8,input_dim=7082))
model.add(Dense(2,activation='softmax'))
model.compile(loss="categorical_crossentropy",optimizer="adam",metrics=['accuracy'])

Я не знаю, делаю ли я что-то совершенно неправильно. Может ли кто-нибудь указать мне правильное направление относительно того, что я должен изменить. Вышла ошибка: Error when checking input: expected dense_35_input to have 2 dimensions, but got array with shape ()

1 Ответ

1 голос
/ 21 марта 2020

Плотные слои, по-видимому, не имеют параметра input_dim в соответствии с документацией .

input_shape является кортежем и должен использоваться в первом слое модели. , Он относится к форме входных данных.

units относится к размеру выходного пространства, то есть к форме каждого выходного элемента, обрабатываемого плотным слоем.

В вашем В случае, если ваши входные данные имеют размерность 7082, это должно работать:

model.add(Dense(8,input_shape=(7082,),activation='relu'))
model.add(Dense(2,activation='softmax'))
model.compile(loss="categorical_crossentropy",optimizer="adam",metrics=['accuracy'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...