0
У меня есть модель Keras с несколькими входами, сочетающая текстовый и числовой ввод. Оба входных данных пропускаются через плотные слои, за которыми следуют слои внедрения, затем объединяются и объединяются с помощью GlobalMaxPooling1D. Несмотря на тщательную отладку размеров слоев на каждом этапе, я по-прежнему сталкиваюсь с ошибкой при загрузке данных в модель.
Вот определение модели:
def model_builder(hp, vocab_size, max_token_size):
# Гиперпараметры
hp_text_units = hp.Int('text_units', min_value=64, max_value=512, шаг=32)
hp_numeric_units = hp.Int('numeric_units', min_value=32, max_value=256, шаг=32)
hp_dropout = hp.Float('dropout', min_value= 0,1, max_value=0,5, шаг=0,1)
hp_learning_rate = hp.Float('learning_rate', min_value=1e-4, max_value=1e-2, sample='log')
Журналы ошибок:
Несмотря на проверку размеров по всей модели с помощью операторов отладочной печати, я получаю следующую ошибку, когда модель начинает обучение:
ValueError: Исключение возникло при вызове Functional.call(). Ввод 0 слоя «плотный» несовместим со слоем: ожидалось, что ось -1 входной формы будет иметь значение 1149, но получен ввод с формой (Нет, 26)
Журналы отладки: здесь — это размеры слоя, напечатанные во время построения модели:
Форма ввода текста (статические): (нет, 1149) Форма плотного слоя текста (статические): (нет, 224) Внедрение формы слоя (Статические): (Нет, 224, 224) Форма плотного слоя 1 текста (Статические): (Нет, 224, 224) Форма нормализации текстового пакета (Статические): (Нет, 224, 224) Форма выпадения текста (Статические): ( Нет, 224, 224) Числовой ввод Форма (статические): (Нет, 26) Числовое изменение формы слоя (статические): (Нет, 26) Числовая форма плотного слоя (статические): (Нет, 224) Числовая форма внедренного слоя (статические): (Нет, 224, 224) Числовая форма плотного слоя 1 (статические): (Нет, 224, 224) Числовая Форма пакетной нормализации (статическая): (Нет, 224, 224) Форма исключения числовых значений (статическая): (Нет, 224, 224) Форма объединенного слоя (статические): (Нет, 224, 448) Форма составного слоя GlobalMaxPooling (статические): (Нет, 448) Форма объединенного плотного слоя 1 (статические): (Нет, 256) Форма объединенной пакетной нормализации (статические) ): (Нет, 256) Комбинированная форма дропаута (Статические): (Нет, 256) Комбинированная форма плотного слоя 2 (статические): (Нет, 128) Комбинированная форма пакетной нормализации 1 (статические): (Нет, 128) Комбинированная форма исключения 1 (статические): (Нет, 128) Комбинированная форма плотного слоя 3 (статические): (Нет, 64) Комбинированная форма Dropout2 (Статические): (Нет, 64) Форма выходного слоя (Статические): (Нет, 1)
0 У меня есть модель Keras с несколькими входами, сочетающая текстовый и числовой ввод. Оба входных данных пропускаются через плотные слои, за которыми следуют слои внедрения, затем объединяются и объединяются с помощью GlobalMaxPooling1D. Несмотря на тщательную отладку размеров слоев на каждом этапе, я по-прежнему сталкиваюсь с ошибкой при загрузке данных в модель. Вот определение модели: def model_builder(hp, vocab_size, max_token_size): # Гиперпараметры hp_text_units = hp.Int('text_units', min_value=64, max_value=512, шаг=32) hp_numeric_units = hp.Int('numeric_units', min_value=32, max_value=256, шаг=32) hp_dropout = hp.Float('dropout', min_value= 0,1, max_value=0,5, шаг=0,1) hp_learning_rate = hp.Float('learning_rate', min_value=1e-4, max_value=1e-2, sample='log') [code]# Girdi tanımlamaları text_input = tf.keras.Input(shape=(max_token_size,), dtype="int32", name="text_input") numeric_input = tf.keras.Input(shape=(26,), name="numeric_input") # Debugging Embedding Layer Output temp_model = tf.keras.Model(inputs=text_input, outputs=text_input) print("Text input Shape (Static):", temp_model.output_shape)
# Model Derleme model = tf.keras.Model(inputs=[text_input, numeric_input], outputs=output) model.compile( optimizer=tf.keras.optimizers.Adam(learning_rate=hp_learning_rate), loss='binary_crossentropy', metrics=['accuracy'] )
return model [/code] Журналы ошибок: Несмотря на проверку размеров по всей модели с помощью операторов отладочной печати, я получаю следующую ошибку, когда модель начинает обучение: ValueError: Исключение возникло при вызове Functional.call(). Ввод 0 слоя «плотный» несовместим со слоем: ожидалось, что ось -1 входной формы будет иметь значение 1149, но получен ввод с формой (Нет, 26) Журналы отладки: здесь — это размеры слоя, напечатанные во время построения модели: Форма ввода текста (статические): (нет, 1149) Форма плотного слоя текста (статические): (нет, 224) Внедрение формы слоя (Статические): (Нет, 224, 224) Форма плотного слоя 1 текста (Статические): (Нет, 224, 224) Форма нормализации текстового пакета (Статические): (Нет, 224, 224) Форма выпадения текста (Статические): ( Нет, 224, 224) Числовой ввод Форма (статические): (Нет, 26) Числовое изменение формы слоя (статические): (Нет, 26) Числовая форма плотного слоя (статические): (Нет, 224) Числовая форма внедренного слоя (статические): (Нет, 224, 224) Числовая форма плотного слоя 1 (статические): (Нет, 224, 224) Числовая Форма пакетной нормализации (статическая): (Нет, 224, 224) Форма исключения числовых значений (статическая): (Нет, 224, 224) Форма объединенного слоя (статические): (Нет, 224, 448) Форма составного слоя GlobalMaxPooling (статические): (Нет, 448) Форма объединенного плотного слоя 1 (статические): (Нет, 256) Форма объединенной пакетной нормализации (статические) ): (Нет, 256) Комбинированная форма дропаута (Статические): (Нет, 256) Комбинированная форма плотного слоя 2 (статические): (Нет, 128) Комбинированная форма пакетной нормализации 1 (статические): (Нет, 128) Комбинированная форма исключения 1 (статические): (Нет, 128) Комбинированная форма плотного слоя 3 (статические): (Нет, 64) Комбинированная форма Dropout2 (Статические): (Нет, 64) Форма выходного слоя (Статические): (Нет, 1)