ValueError: Ошибка при проверке: ожидается, что dens_1_input имеет shape (3,), но получил массив с shape (1,) - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь предсказать, используя изученный файл .h5.Модель обучения выглядит следующим образом.

model =Sequential()
model.add(Dense(12, input_dim=3, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(4, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer = 'adam', metrics = ['accuracy'])

И я написал форму ввода следующим образом.

x = np.array([[band1_input[input_cols_loop][input_rows_loop]],[band2_input[input_cols_loop][input_rows_loop]],[band3_input[input_cols_loop][input_rows_loop]]])

prediction_prob = model.predict(x)

Я думал, что форма была правильной, но произошла следующая ошибка.

ValueError: Ошибка при проверке: ожидалось, что dens_1_input будет иметь форму (3,), но получил массив с формой (1,)

Форма x явно (3,1), но вышеуказанная ошибка не исчезает (данные взяты из файла csv в виде (value 1, value 2, value 3, class)).

Как решить эту проблему?

1 Ответ

0 голосов
/ 15 мая 2018

Форма x, очевидно, (3,1), но вышеупомянутая ошибка продолжается.

Вы правы, но это не , что ожидает keras.Ожидается форма (1, 3): условно, ось 0 обозначает размер пакета, а ось 1 обозначает элементы.Первый слой Dense принимает 3 функции, поэтому он жалуется, когда видит только одну.

Решение состоит в том, чтобы просто транспонировать x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...