Керас предсказывает несколько раз

#python #tensorflow #keras

Вопрос:

Привет, я пытался предсказать модель с входной формой (3040,1), и когда я пытался предсказать массив формы (1,3040,1), он возвращается и массив формы (1,3040,1), когда я ожидаю только одно число между 1 и 0. Я попытался изменить форму на (3040,1) и (1,3040) и получить результат формы (3040,1,1), но второй возвращает ошибку значения

ValueError: Input 0 of layer sequential is incompatible with the layer: expected axis -1 of input shape to have value 1 but received input with shape (None, 3040)

Это модель

    model = Sequential()
   model.add(Dense(units = 3040, input_shape = (3040,1), activation='relu'))
   model.add(Dense(units = 2027, activation='relu'))
   model.add(Dense(units = 1, activation = 'sigmoid'))
 

Пожалуйста, сообщите мне, если я сделал что-то не так.

Комментарии:

1. Это не имеет никакого значения, это неверный совет.

2. Если у вас есть 1 объект в строке, то ваша форма ввода должна быть просто (1,)

3. units это количество нейронов и на самом деле не связано с формой данных в данном случае. Уменьшите это до примерно 100, иначе ваша модель займет много времени для обучения

4. @ML_Engine я изменил форму ввода на (1), она возвращает ошибку ValueError ValueError: Input 0 of layer dense is incompatible with the layer: expected axis -1 of input shape to have value 1 but received input with shape (1, 3040)

Ответ №1:

Рабочий пример кода

 model = tf.keras.models.Sequential()
#model.add(tf.keras.Input(shape=(3040,)))
model.add(tf.keras.layers.Dense(3040, input_shape = (3040,1) , activation='relu'))
model.add(tf.keras.layers.Dense(2027, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation = 'sigmoid'))
model.output_shape
 

Выход

 (None, 3040, 1)