Tensorflow Keras load_model из памяти или переменной? - PullRequest
0 голосов
/ 07 октября 2019

Потому что входные данные tenorflow.keras.models.load_model - это путь.

Но сначала мне нужно загрузить его из файла и расшифровать. затем укажите

load_model

, если есть идеи по его реализации?

from tensorflow.keras.models import load_model
with open('mypath.h5'. mode='rb') as f:
    h5 = decrypt_func(f.read())

model = load_model(h5)

Это работает.

решение в соответствии@ jgorostegui

import tempfile
import h5py
from tensorflow.keras.models import load_model

temp = tempfile.TemporaryFile()
with open('mypath.h5'. mode='rb') as f:
    h5 = decrypt_func(f.read())
    temp.write(h5)
with h5py.File(temp, 'r') as h5file:
    model = load_model(h5file)

1 Ответ

1 голос
/ 07 октября 2019

В зависимости от формата, который выводит функцию decrypt_func, можно использовать h5py для загрузки расшифрованного потока, а затем использовать функцию keras.models.load_model для загрузки модели, которая поддерживает тип объекта h5py.File в качестве входной модели. кроме упомянутой вами строки, путь к сохраненной модели.

with open('model.hdf5', 'rb') as f_hdl:
    h5 = decrypt_func(f_hdl.read())
    with h5py.File(h5, 'r') as h5_file:
        model = keras.models.load_model(h5_file)
...