Python, Keras - ValueError: Невозможно передать значение формы (10, 70, 1025) для Tensor u'dense_2_target: 0 ', который имеет форму' (?,?) '

Вы можете сделать это двумя способами:

  1. Используйте разъем Spark Cassandra для выполнения пакетного чтения, преобразования даты и amp; записать данные назад - это очень оптимально, если у вас есть кластер из нескольких машин, потому что обработка может быть распараллелена;
  2. Напишите свой собственный код (например, на Python), который будет перебирать по всему кольцу, читать данные , трансформировать & amp; напишите их обратно. Вы можете использовать CQL, например: select * from ks.table where token(partition_key) > start_range AND token(partition_key) <= end_range), и диапазоны, которые вы можете получить через Cluster.metadata.ring ...

0
задан Phys 18 January 2019 в 20:21
поделиться

2 ответа

Чтобы получить правильную выходную форму, вы можете использовать слой Reshape:

o0 = Dense(70 * 1025, activation='sigmoid')(x)
o0 = Reshape((70, 1025)))(o0)

Это выведет (batch_dim, 70, 1025). Вы можете сделать то же самое для двух других выходов.

0
ответ дан Matias Valdenegro 18 January 2019 в 20:21
поделиться

В этом случае второй RNN сворачивает последовательность в один вектор, потому что по умолчанию return_sequences=False. Чтобы модель возвращала последовательности и запускала плотный слой по каждому временному шагу отдельно, просто добавьте return_sequences=True ко второму RNN:

x = Bidirectional(LSTM(n_hid,  return_sequences=True, dropout=0.5, recurrent_dropout=0.2))(x)

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

0
ответ дан nuric 18 January 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: