Невозможно загрузить сохраненный файл контрольной точки .h5 в приложение Python при развертывании в Heroku - PullRequest
0 голосов
/ 02 июля 2019

Я пытался создать приложение машинного обучения, используя Python.В этом случае мне необходимо импортировать предварительно обученную модель, хранящуюся в файле checkpoint-1.111.h5 в хранилище.Но я не могу импортировать эту модель при развертывании кода в Heroku.Репозиторий успешно развернут, но при открытии приложения отображается

Внутренняя ошибка сервера

Код для app.py выглядит следующим образом:

import re
from flask import Flask, jsonify, render_template, request

from keras.models import load_model
# Run this cell to mount your Google Drive.
#from google.colab import drive
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences




app = Flask(__name__)

@app.route('/')
def index():
    best_model =  load_model('checkpoint-1.111.h5')
    data_int_t = pad_sequences([[1, 72, 19, 38], [], [], [], []],padding='pre', maxlen=(30-5))
    data_test = pad_sequences(data_int_t, padding='post', maxlen=(30))
    y_prob = best_model.predict(data_test)
    return str(x + y)


if __name__ == '__main__':
    app.run()

При открытии приложения я всегда получаю результат Внутренняя ошибка сервера.Журналы выглядят следующим образом:

2019-07-02T17:38:32.982084+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/keras/utils/io_utils.py", line 186, in __init__
2019-07-02T17:38:32.982086+00:00 app[web.1]:     self.data = h5py.File(path, mode=mode)
2019-07-02T17:38:32.982088+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/h5py/_hl/files.py", line 394, in __init__
2019-07-02T17:38:32.982090+00:00 app[web.1]:     swmr=swmr)
2019-07-02T17:38:32.982092+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/h5py/_hl/files.py", line 170, in make_fid
2019-07-02T17:38:32.982094+00:00 app[web.1]:     fid = h5f.open(name, flags, fapl=fapl)
2019-07-02T17:38:32.982097+00:00 app[web.1]:   File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
2019-07-02T17:38:32.982099+00:00 app[web.1]:   File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
2019-07-02T17:38:32.982101+00:00 app[web.1]:   File "h5py/h5f.pyx", line 85, in h5py.h5f.open
2019-07-02T17:38:32.982110+00:00 app[web.1]: OSError: Unable to open file (file signature not found)

Оба файла app.py и checkpoint-1.111.h5 находятся в одном и том же месте хранилища.Однако checkpoint-1.111.h5 на самом деле является git-lfs файлом.Но это проблема?keras.models.load_model полностью работает при загрузке файла checkpoint-1.111.h5, когда я использую тот же код в Google Colab.

1 Ответ

0 голосов
/ 02 июля 2019

checkpoint-1.111.h5 на самом деле git-lfs файл

Heroku не поддерживает Git LFS и, к сожалению, я не знаю достаточно о TensorFlow илиКерас, чтобы предложить альтернативное решение.С жестким ограничением размера слагов и эферической файловой системой Heroku может не подойти для этого приложения.

...