害怕部署机器学习模型?这里有一篇手把手教程

害怕部署机器学习模型?这里有一篇手把手教程

Franck V在Unsplash上发表的照片

阅读本文后,您将能够部署机器学习模型,并用您想要的编程语言进行预测。是的,你可以要么坚持使用Python,要么通过Java或Kotlin直接在你的安卓应用程序中进行预测。此外,您可以在您的网络应用程序中直接使用——型号。你有很多选择。为了简单起见,我将使用邮递员。

但是,我不会解释如何将这个模型放在实时服务器上,因为有太多的选择。该模型将在您的本地主机上运行,因此您将无法从不同的网络访问它(但是请随时使用谷歌查询如何将该模型部署到AWS等)。

如果您已经通过Anaconda安装了Python,那么您可能已经预先安装了除烧瓶之外的所有库。因此,启动终端并执行以下语句:

进行得好吗?很好,现在让我们来看看一些好东西。

制作基本预测脚本

如果您遵循目录结构,您应该现在打开model/Train.py文件。首先,您必须加载虹膜数据集,并使用简单的决策树分类器来训练模型。培训结束后,我将使用joblib库保存模型,并向用户报告准确度分数。

这里并不复杂,因为机器学习不是本文的重点,它只是模型部署。下面是整个脚本:

来自sklearnimportdataset sfromsk learn。树导入决策树分类器学习。model _ selection import train _ test _ splitfromsklearn。sklearn的metrics importjoblibdeftrain _ score。

外部importjoblibdeftrain _ model()3360 iris _ df=数据集。load _ iris()X=iris _ df。数据y=iris拟合(X_train,y_train)预测(X_test)准确度=准确度_分数(y_test,preds)作业库。转储(dt,“iris-model.model”)打印(“模型训练完成” .\ n \获得:{} .格式(准确性)

部署

现在您可以打开app.py文件并行一些导入操作。您需要一些操作系统模块:Flask和Flask RESTful,它们是10秒前创建的模型训练脚本。您还需要将它们和joblib加载到培训模型中:

importosfromflaskimportFlask烧瓶,jsonify,来自烧瓶_ RESTFILimport tapi,Resourcefrommodel的请求.sklearn的trainimporttrain _ model。externalsimportjoblib

现在您应该从Flask RESTful创建Flask和Api的实例。没什么复杂的:“下一步要做的是检查模型是否受过训练。在Train.py中,您已经声明模型将保存在文件iris-model.model文件中,如果该文件不存在,应该首先对模型进行训练。培训完成后,可以通过joblib加载:

app=烧瓶(_ _ name _ _)Api=Api(app)

现在您需要声明一个预测类。Flasksrestful使用这种编码约定,因此您的类需要从Flasksrestful资源模块继承。在类中,您可以声明get()、post()或任何其他处理数据的方法。

如果不是。路径。是文件(“虹膜模型”。模型): train _ model()模型=joblib。加载(“虹膜模型”。模型“)

我们将使用post(),因此数据不会直接通过网址传递。您需要从用户输入中获取属性(根据用户输入的属性值进行预测)。然后您可以调用。加载模型的predict()函数。仅仅因为这个数据集的目标变量的格式是(0,1,2)而不是(“Iris-setosa”、“Iris versicolor”、“Iris virginica 仍然需要解决这个问题。最后,您可以返回预测的JSON表示:“我们快完成了,来吧!您还需要声明一个路由,部分网址将用于处理请求:

类makePrediction(资源)3360@static method defpost()3360 post _ data=request。get _ JSON()sepal _ length=post _ data[‘ sepal _ length ‘ ‘api.add_resource(MakePrediction,’/predict’)

最后一件事是告诉Python在调试模式下运行应用程序:

if _ _ name _ _ _=’ _ _ main _ _ _ ‘ :应用程序。运行(调试=真)

这是正确的做法。您可以启动模型,并通过邮递员或其他工具进行预测。

好的,你准备好了吗?

good!导航到根目录(app.py在根目录中),启动终端并执行以下操作:

大约一秒钟后,您将得到一个显示应用程序正在本地主机上运行的输出。

现在我将打开邮递员并执行以下操作:

将方法更改为POST EnTER localhost :5000/predict as网址 Select JSON

在正文选项卡中输入一些JSON来预测

然后您可以单击发送:

害怕部署机器学习模型?这里有一篇手把手教程

Look!几乎可以立即从模型中得到预测。

写在最后

我希望你能读完这篇文章。如果您只是复制和粘贴所有内容,只要您安装了所有必要的库,就应该能够继续。

我强烈建议您在数据集和业务问题中利用这些新获得的知识。如果您用Python以外的语言编写应用程序,并且只将Python用于数据和机器学习,那么它非常有用。

 

极牛网精选文章《害怕部署机器学习模型?这里有一篇手把手教程》文中所述为作者独立观点,不代表极牛网立场。如若转载请注明出处:https://geeknb.com/2571.html

(37)
打赏 微信公众号 微信公众号 微信小程序 微信小程序
主编的头像主编认证作者
上一篇 2019年11月21日 下午3:30
下一篇 2019年11月21日 下午4:01

相关推荐

发表回复

登录后才能评论
扫码关注
扫码关注
分享本页
返回顶部