#python #neural-network #lstm
#python #нейронная сеть #lstm
Вопрос:
Я пытаюсь использовать Flatten для своей модели LSTM, но это не работает и выдает эту ошибку:
Ошибка значения: форма входных данных для «выравнивания» определена не полностью (got (None, 450) Обязательно передайте полный аргумент «input_shape» или «batch_input_shape» для первого слоя в вашей модели.
Модель:
input_vector_size = kwargs.get('input_vector_size', 128)
dense_size = kwargs.get('dense_size', 20)
timesteps = None
xav_init = tf.contrib.layers.xavier_initializer()
##########
model = Sequential()
model.add(LSTM(int(input_vector_size), input_shape=timesteps,int(input_vector_size)), return_sequences=True))
model.add(SeqSelfAttention(attention_activation='softmax'))
model.add(Flatten())
model.add(Dense(dense_size, activation='sigmoid', kernel_initializer=xav_init))
model.add(Dense(kwargs.get('label_size', 2), activation='sigmoid'))
Как мне решить эту проблему?
Комментарии:
1. Вам нужна другая скобка:
input_shape=(timesteps, int(input_vector_size))
, иначеinput_shape=timesteps=None
2. Да, я забыл скобку, и я исправил код. Я должен изменить временные интервалы на 1, если я хочу использовать Flatten() @JimmyOnThePage
Ответ №1:
Просто для тех, кто хочет знать ответ. Вы должны изменить input_shape на (1,int(input_vector_size)), чтобы использовать Flatten