Проблемы с загрузкой модели, сохраненной в .h5, после обновления библиотеки tensorflow с 2.15.0 до 2.17.0.Python

Программы на Python
Anonymous
Проблемы с загрузкой модели, сохраненной в .h5, после обновления библиотеки tensorflow с 2.15.0 до 2.17.0.

Сообщение Anonymous »

Я создал модель LSTM с помощью библиотеки tensorflow версии 2.15.0.
Теперь мне нужно использовать модель, созданную в новом проекте, но в этом проекте мне придется использовать все обновленные библиотеки, а также последнюю версию Python, поэтому мне пришлось внести некоторые изменения, вот важные обновления:




ОТ
ДО




python
3.11.5
3.12.6


h5py
3.9.0
3.11.0


keras >
2.15.0
3.5.0


numpy
1.24.3
1.26.4


панды
2.0.3
2.2.2


тензорная доска
2.15.2
2.17.2


тензорный поток
2.15.0
2.17.0


tensorflow-intel
2.15.0< /td>
2.17.0



В новом проекте я использую тензорный поток только для load_model, и я делаю это следующим образом:

Код: Выделить всё

def load_model_and_hyperparams(model_name):

logging.info(f"Loading model and parameters for '{model_name}'")

try:
model_path = os.path.join(os.getcwd(), "python", model_name, f"{model_name}.h5")
model = tf.keras.models.load_model(model_path)

params_path = os.path.join(os.getcwd(), "python", model_name, "_hyperparameters.json")
with open(params_path, 'r') as f:
params = json.load(f)

logging.info(f"Model and parameters successfully loaded for {model_name}")
return model, params

except Exception as e:
logging.error(f"Failed to load model or parameters for {model_name}. Error: {e}")
raise
и вот какую ошибку я получаю:

18-09-2024 16:28:08 ИНФОРМАЦИЯ: Загрузка модели и параметров для 'modello_canale'
18-09-2024 16:28:08 ОШИБКА: Не удалось загрузить модель или параметры для modello_canale.
Ошибка: в LSTM переданы нераспознанные аргументы ключевого слова: {'time_major': False}

Я попробовал загрузить модель в старую версию tensorflow и удалить time_major атрибут из конфигурации модели, хранящейся в файле HDF5(.h5).
Насколько мне известно, это должен быть пример структуры файла h5:

/
├── model_weights (группа)
│ ├── Layer_1 (группа)
│ │ └── веса (набор данных)
│ └── Layer_2 (группа) )
│ └── веса (набор данных)
├── model_config (группа или набор данных)
│ └── атрибуты (пары ключ-значение, такие как 'time_major')
└ ── Training_config (группа)
└── оптимизатор (набор данных)

Вместо повторного обучения или воссоздания модели этот подход должен напрямую изменять хранимую конфигурацию модели в файл HDF5, чтобы удалить недопустимый параметр, что позволит загрузить модель без ошибок.
Я не знаю, что еще попробовать. Моя цель — удалить time_major без необходимости воссоздавать модель в версии 2.17.0.
Если у вас есть какие-либо подсказки, дайте мне знать, я могу попробовать все, если мне не придется переобучать модель.< /p>
Заранее большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/789 ... ary-from-2

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