Загрузка модели tf.keras, ValueError: две структуры не имеют одинаковой вложенной структуры.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Загрузка модели tf.keras, ValueError: две структуры не имеют одинаковой вложенной структуры.

Сообщение Anonymous »

Я создал модель tf.keras с BERT, хочу обучить и сохранить ее для дальнейшего использования.
Загрузка этой модели — большая проблема, потому что я продолжаю ошибка получения: ValueError: две структуры не имеют одинаковой вложенной структуры.
Я значительно упростил модель, чтобы увидеть, в чем именно заключается проблема. Код довольно прост:
bert = TFBertModel.from_pretrained("bert-base-german-cased")

model_name = "Model"
txt12_input_ids = tf.keras.layers.Input(shape=(max_length,), name='txt12_input_ids', dtype='int32')
txt12_mask = tf.keras.layers.Input(shape=(max_length,), name='txt12_mask', dtype='int32')
txt12_outputs = bert(txt12_input_ids, txt12_mask).pooler_output

model_K = tf.keras.Model(inputs=(txt12_input_ids, txt12_mask), outputs=txt12_outputs, name=model_name)
model_K.compile(optimizer=Adam(1e-5), loss="binary_crossentropy", metrics="accuracy")

model_K.save(dir_path+'Prob')
model_2 = tf.keras.models.load_model(dir_path+'Prob')

Несколько замечаний, прежде чем вы начнете отвечать:
  • Я указал dtype .
  • Нет, я не хочу сохранять только веса.

    Я пытался использовать tf.keras.models.save_model(model_K, dir_path+'Prob') вместо этого выдает ту же ошибку.
И последнее, я работать с версией tf: 2.6.0. Кто-нибудь знает, как это решить?
Полное сообщение об ошибке:
ValueError: The two structures don't have the same nested structure.

First structure: type=tuple str=(({'input_ids': TensorSpec(shape=(None, 5), dtype=tf.int32, name='input_ids/input_ids')}, None, None, None, None, None, None, None, None, False), {})

Second structure: type=tuple str=((TensorSpec(shape=(None, 120), dtype=tf.int32, name='input_ids'), TensorSpec(shape=(None, 120), dtype=tf.int32, name='attention_mask'), None, None, None, None, None, None, None, False), {})

More specifically: Substructure "type=dict str={'input_ids': TensorSpec(shape=(None, 5), dtype=tf.int32, name='input_ids/input_ids')}" is a sequence, while substructure "type=TensorSpec str=TensorSpec(shape=(None, 120), dtype=tf.int32, name='input_ids')" is not
Entire first structure:
(({'input_ids': .}, ., ., ., ., ., ., ., ., .), {})
Entire second structure:
((., ., ., ., ., ., ., ., ., .), {})


Подробнее здесь: https://stackoverflow.com/questions/693 ... same-neste
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»