Почему форма Python не соответствует тому, что ожидает Керас? - PullRequest
0 голосов
/ 01 апреля 2019

В моем коде у меня есть: self._model.predict(next_state)

Когда я print(next_state.shape), я получаю (14,)

Но когда я запускаю свой код, я получаю ошибку:

ValueError: Error when checking input: expected dense_4_input to have shape (14,) but got array with shape (1,)

model.summary:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_4 (Dense)              (None, 24)                360       
_________________________________________________________________
dense_5 (Dense)              (None, 24)                600       
_________________________________________________________________
dense_6 (Dense)              (None, 4)                 100       
=================================================================
Total params: 1,060
Trainable params: 1,060
Non-trainable params: 0
_________________________________________________________________
None

1 Ответ

2 голосов
/ 01 апреля 2019

Модель ожидает, что ваш входной массив будет иметь форму (примеры функций X). Вот почему формы ввода и вывода описываются (None, 24), где «None» обозначает размер пакета. Таким образом, первая ось обозначает различные примеры, которые вы хотите предсказать, как строки, а их особенности - как столбцы. Для API-интерфейса keras требуются массивы, индексированные с помощью двумерных позиционных аргументов, а вы предоставляете его с индексированным массивом из одной цифры (14, ).

Чтобы обработать один пример, простой обходной путь - изменить форму массива, чтобы иметь два позиционных индикатора перед отправкой для прогнозирования:

self._model.predict(np.reshape(next_state, [1, next_state.shape]))

Что меняет ваш ввод на (1, 14), что требуется для модели, обозначенной (None, 14)

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