2017-01-28 10 views
1

Я борюсь с форматированием своих данных.Размер ввода Keras

Я разработал простую модель в Keras. Он состоит из двух отдельных моделей (слой Embedding и слой LSTM). Эти две модели затем сливаются с Merge. Затем их объединяют несколькими слоями свертки.

Это мои встроенные примеры предложений.

x1 
>>> array([[ 0, 25, 0, 0, 0]], dtype=int32) 
y1 
>>> array([[42, 10, 0, 0, 0, 10]], dtype=int32) 

Использование predict я получить желаемый один выход для комбинированных предложений.

model.predict([x1,y1]) 
>>> array([[ 0.92327869]]) 

Я могу даже использовать

model.fit([x,y],gold[0]) 

для обучения модели, где

gold[0] 
>>> array([ 1.]) 

Вопрос заключается в том как можно форматировать примеры x_i и y_i, так что я могу использовать его в функции соответствия. model.predict([[x1,x2],[y1,y2]]) не работает, дает

TypeError: list indices must be integers or slices, not list 

ответ

0

Итак, следуя документации Keras Embedding вам необходимо предоставить в качестве вклада в Встраивание слой а numpy.array размерности 2. Поскольку у вас есть несколько входов - необходимо предоставить список из массивов numpy для подачи их на несколько входов.

В последнем случае, однако, вы подаете список списков входов. Это вызвало проблему. Чтобы решить эту проблему, вам понадобится numpy.concatenate этих двух массивов:

x = numpy.concatenate((x1, x2), axis = 0) 
y = numpy.concatenate((y1, y2), axis = 0) 

 Смежные вопросы

  • Нет связанных вопросов^_^