Загрузка этой модели — большая проблема, потому что я продолжаю ошибка получения: 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') вместо этого выдает ту же ошибку.
Полное сообщение об ошибке:
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