Я пытаюсь использовать 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. спасибо