Модель Keras неверно интерпретирует форму входных данных - PullRequest
0 голосов
/ 08 марта 2019

У меня есть генератор, который yield s следующий:

yield {'ingredients': ingredients, 'documents': documents}, labels

Итератор yield'd имеет следующую форму:

ingredients.shape (10, 46) documents.shape (10, 46) labels.shape (10,)

Как только этот итератор проходит через мою модель, я получаю следующее:

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

Вот код модели, который вызывает вышеуказанную ошибку:

    # Both inputs are 1-dimensional
    ingredients = Input(
        name='ingredients',
        shape=[1]
    )
    # ingredients.shape (?, 1) 
    documents = Input(
        name='documents',
        shape=[1]
    )
    # documents.shape (?, 1)

    logger.info('ingredients %s documents shape %s', ingredients.shape, documents.shape)

    ingredients_embedding = Embedding(name='ingredients_embedding',
                                      input_dim=training_size,
                                      output_dim=embedded_document_size)(ingredients) 

    # Embedding the document (shape will be (None, 1, embedding_size))
    document_embedding = Embedding(name='documents_embedding',
                                   input_dim=training_size,
                                   output_dim=embedded_document_size)(documents)

1 Ответ

1 голос
/ 08 марта 2019

Значение input_shape, упомянутое во входном слое ingredients и documents, равно (1). Но форма ингредиентов (10, 46) и документов (10, 46). Здесь 10 - количество образцов.

Вы инициализируете модель для ввода формы (Нет, 1). Так и должно быть (None, 46). Следовательно, вы можете внести эти изменения.

ingredients = Input( name='ingredients', shape=( 46 , ) ) 
documents = Input( name='documents', shape=( 46 , )

Это должно исправить ошибку. На самом деле вход имеет 46 измерений или 46 элементов.

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