Я пытаюсь тренировать РНН партиями.
Размер входного ввода
(10, 70, 3075),
где 10 - размер партии, 70 - измерение времени, 3075 - измерение частоты.
Есть три выхода, размер которых
(10, 70, 1025)
каждая, в основном 10 спектрограмм с размером (70 1025).
Я бы хотел обучить этот RNN по регрессии, структура которого
input_img = Input(shape=(70,3075 ) )
x = Bidirectional(LSTM(n_hid,return_sequences=True, dropout=0.5, recurrent_dropout=0.2))(input_img)
x = Dropout(0.2)(x)
x = Bidirectional(LSTM(n_hid, dropout=0.5, recurrent_dropout=0.2))(x)
x = Dropout(0.2)(x)
o0 = ( Dense(1025, activation='sigmoid'))(x)
o1 = ( Dense(1025, activation='sigmoid'))(x)
o2 = ( Dense(1025, activation='sigmoid'))(x)
Проблема в том, что выходные плотные слои не могут учитывать три измерения, им нужно что-то вроде (None, 1025), которое я не знаю, как обеспечить, если я не объединяюсь по измерению времени.
Произошла следующая ошибка:
ValueError: Невозможно передать значение формы (10, 70, 1025) для Tensor u'dense_2_target: 0 ', который имеет форму' (?,?) '
Будет ли опция batch_shape полезна во входном слое? Я действительно попробовал это, но у меня та же ошибка.