使用Django服务Keras模型

时间:2018-09-20 18:20:11

标签: python django tensorflow keras

我有一个预先训练的keras模型(.hdf5格式),我打算使用Django Web-App进行部署。在我的视图文件中,当传入某个POST请求时会调用它。我已将.hdf5模型存储在与Web应用程序关联的静态文件夹中。但是,当我调用keras.models.load_model尝试从静态目录中加载模型时,应用会返回以下错误:

Unable to open file (unable to open file: name = '/static/model.hdf5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)

但是,模型显然位于我的静态文件夹中,所以我不确定为什么load_model函数无法正常加载模型。

如果出于某些原因或解决方法,我不确定,因此有关解决方案的任何信息都将有所帮助。我也愿意切换到张量流服务模型,或者如果这是一个keras问题,那将是有益的。

我无法从Django应用程序加载keras模型的原因是什么,我该如何解决这种情况?

1 个答案:

答案 0 :(得分:0)

Django中的static目录用于向用户提供媒体和其他静态内容,例如图像或样式表。如果要使用内部脚本访问文件,则适用用于访问文件的常规Python规则。只需将模型放在源树中的某个位置即可使用。例如,如果模型与您的views.py位于同一位置,那么它将起作用:

def my_view(request):
    if request.POST.get['foo', ''] == 'do_something':
        keras.models.load_model('model.hdf5')

顺便说一句,除非我遗漏了某些东西,否则您可能根本不想将模型放入静态文件夹中。这可能导致任何人都可以访问该模型本身。