Как предотвратить загрузку моей модели Keras при каждом вызове представлений в Django? - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь использовать mobil enet в приложении Django для классификации изображений. Я уже обучил свою модель использованию Keras с бэкэндом Tensorflow, и она работает правильно, без использования Django. Сначала я попытался использовать свою модель внутри функций просмотра, и она работала без каких-либо ошибок. Тем не менее, модель загружается каждый раз, когда я вызываю это представление, и перезагрузка занимает много раз. Затем я попытался определить модель как глобальную модель для загрузки весов только один раз. Я попытался инициализировать вес модели в настройках или в файле app.py, но обнаружилось много проблем. На самом деле я пытался использовать модель без загрузки весов, и она работала, но после загрузки веса это дает мне эту ошибку: это мой код: в settings.py

global model,graph
model = MobileNet(weights=None)
model.load_weights(path)
model._make_predict_function()
graph = tf.get_default_graph()

в views.py

 with graph.as_default():
          model.predict(img)

и это ошибка

RuntimeError at /classifier/
Attempting to capture an EagerTensor without building a function.

, и это ошибка перед добавлением model._make_predict_function ():

 Error while reading resource variable conv_pw_12/kernel from Container: localhost. This could mean that the variable was uninitialized. Not found: Container localhost does not exist. (Could not find resource: localhost/conv_pw_12/kernel)
     [[{{node conv_pw_12/Conv2D/ReadVariableOp}}]]

и вот версии установленных пакеты:

Django==3.0.3
Keras==2.3.1
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.0
numpy==1.18.1
Pillow==7.0.0
scipy==1.4.1
tensorboard==2.1.0
tensorflow-cpu==2.1.0
tensorflow-estimator==2.1.0

еще одна вещь, мои веса сохраняются в виде файла .h5. спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...