Теперь мне нужно использовать модель, созданную в новом проекте, но в этом проекте мне придется использовать все обновленные библиотеки, а также последнюю версию 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