#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)