Ошибка значения: форма входных данных для «сглаживания» не полностью определена (нейронные сети)

#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