Хранение файла модели Keras HDF5 в базе данных SQL - PullRequest
0 голосов
/ 16 мая 2019

У меня есть модель Keras Neural Network, которая регулярно обновляется.Для исторической прослеживаемости я хотел бы сохранить копию каждой обученной модели (архитектура + веса + состояние оптимизатора) в базе данных. Keras экспортирует файл HDF5 , который включает всю информацию о модели.Есть ли способ преобразовать этот файл в формат, который может быть сохранен в записи базы данных SQL, чтобы полная модель могла быть извлечена / использована позже, даже если это извлечение не слишком быстрое?

Я использую Python3 для построения / обучения модели и взаимодействия с базой данных SQL.Кроме того, я использую MS SQL Server для базы данных, если это имеет значение.

Обновление:

На основе комментариев я сохраняю файл HDF5, а затем считываю этот файл обратно вПодобный Python:

filepath = 'C:\\path\\to\\file.h5'
model.save(filepath)
with open(filepath, "rb") as f:
    model_bytes = f.read()

Когда я пытаюсь INSERT значение model_bytes в столбец VARBINARY(MAX) в MSSQL, я получаю следующую ошибку:

pypyodbc.DataError: ('22018', '[22018] [Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Столкновение с типом операнда: ntext несовместимо с varbinary (max)')

Любые идеио том, как предварительно обработать байтовый тип данных в Python, чтобы он правильно вставлялся в SQL?

Когда я печатаю model_bytes на экран, он выглядит так:

b '\x89HDF \ г \ п \ x1a \ п \ x00 \ x00 \ x00 \ x00 \ x00 \ x08 \ x08 \ x00 \ x04 \ x00 \ x10 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \x00 \ x00 \ x00 \ x00 \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF @ \ x13 \ x01 \ x00 \ x00 \ x00 \ x00 \ x00 \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF\ XFF \ XFF \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00` \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x01 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \x00 \ x88 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ xa8 \ x02 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x01 \ x00 \ x08 \ x00 \ x01 \ x00 \ x00 \ x00 \ x18 \x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x10 \ x00 \ x10 \ x00 \ x00 \ x00 \ x00 \ x00 \ x03 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x18 \ x01 \ x00 \x00 \ x00 \ x00 \ x00 \ x00TREE \ x00 \ x00 \ x01 \ x00 \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \ XFF \x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x18 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x18 \ x00 \ x00 ...

...