温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1.文档编写目的
在前面的文章Fayson介绍了关于《CDSW1.4的新功能》、《Hadoop之上的模型训练 - CDSW1.4新功能模块》、《CDSW1.4的Experiments功能使用》、《Hadoop之上的模型部署 - CDSW1.4新功能模块》及《CDSW1.4的Models功能-创建和部署模型(QuickStart)》。本篇文章Fayson会使用CDSW内置的Python模板项目来引导完成端到端的实操示例,即包含从模型创建,训练到部署或投产。我们使用CDSW的实验模块来开发和训练模型,然后使用模型模块的功能来进行部署。
此示例使用Fisher and Anderson的标准Iris数据集构建一个模型,该模型根据花瓣的长度预测花瓣的宽度。
Fisher and Anderson参考:
https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1469-1809.1936.tb02137.x
Iris数据集参考:
https://archive.ics.uci.edu/ml/datasets/iris
1.创建项目
2.训练模型
3.部署模型
4.总结
1.CM和CDH版本为5.15
2.CDSW版本为1.4
3.操作系统为RedHat7.4
2.创建示例工程
1.你可以在CDSW打包的Pyton模板项目中找到这个示例脚本。首先,从Python模板创建一个新项目:登录CDSW平台创建一个Python模板的工程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ffkFs8UY-1583680890037)(https://ask.qcloudimg.com/http-save/yehe-1522219/chus9c313s.png)]
工程创建成功,进入工程目录列表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dWddMVtu-1583680890038)(https://ask.qcloudimg.com/http-save/yehe-1522219/hrmqf3p3ls.jpeg)]
cdsw-build.sh:主要用于模型和实验构建的自定义脚本,在部署模型和试验是会使用pip命令安装我们指定的依赖项,这里主要使用到scikit-learn库。
fit.py:作为试验的模型训练示例。生成包含模型拟合参数的model.pkl文件。
predict.py:作为模型部署的示例函数。调用fit.py生成的model.pkl来预测花瓣宽度。
3.训练模型
1.进入test-models工程点击“Experiments”,进入该工程的试验列表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tKyKrwqO-1583680890039)(https://ask.qcloudimg.com/http-save/yehe-1522219/hltihmw6it.jpeg)]
2.点击“Run Experiment”,使用fit.py创建一个Experiment
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zt8m6WuP-1583680890040)(https://ask.qcloudimg.com/http-save/yehe-1522219/osvaxmmtbt.jpeg)]
注意:确保使用Python3环境运行。
3.点击“Start Run”,新的实验在列表中显示,点击实验ID进入查看详细,可以看到实验概述,点击Session和Build可以看到实时的查看实验的构建及运行进度
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XE4zg0Ur-1583680890040)(https://ask.qcloudimg.com/http-save/yehe-1522219/7sd30cl2lu.jpeg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mHiDNAi0-1583680890040)(https://ask.qcloudimg.com/http-save/yehe-1522219/4o0xl10yei.jpeg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0qeQiFPP-1583680890041)(https://ask.qcloudimg.com/http-save/yehe-1522219/67ui7163w4.jpeg)]
4.等待实验运行成功,在Overview界面可以看到该实验输出的model.pkl文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MpG1SEld-1583680890041)(https://ask.qcloudimg.com/http-save/yehe-1522219/dlkq4vzf3p.jpeg)]
勾选model.pkl,点击“Add to Project”将生成的model.pkl文件添加到我们的test-models工程里。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qUx5wAv1-1583680890042)(https://ask.qcloudimg.com/http-save/yehe-1522219/8fr3x9dvxv.jpeg)]
4.部署模型
我们使用predict.py脚本来部署模型,该脚本中包含了predict函数,花瓣长度为该函数输入参数,并使用上一步训练的模型来预测花瓣的宽度。
1.进入test-models工程页面,点击“Models”
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P01Eyeyb-1583680890042)(https://ask.qcloudimg.com/http-save/yehe-1522219/ks58gxyhn7.jpeg)]
2.点击“New Model”创建一个新的Model,确保使用Python3环境运行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DHM3BV2o-1583680890043)(https://ask.qcloudimg.com/http-save/yehe-1522219/8f7amxpli4.jpeg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yiEshDpt-1583680890043)(https://ask.qcloudimg.com/http-save/yehe-1522219/ehcdmmdc0m.jpeg)]
3.点击“Deploy Model”
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WN1hGAAT-1583680890044)(https://ask.qcloudimg.com/http-save/yehe-1522219/l85vggsupo.jpeg)]
在Models列表可以看到刚部署的模型状态为Pending状态,等待Model部署成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4JKtNKF6-1583680890044)(https://ask.qcloudimg.com/http-save/yehe-1522219/mhw1l6filj.jpeg)]
4.点击“test-model”进入模型部署的详细界面,包含模型的部署,构建,监控以及设置等模块
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UusQkYcA-1583680890044)(https://ask.qcloudimg.com/http-save/yehe-1522219/ug5ljcfrao.jpeg)]
Overview界面还提供了Model功能测试
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tbCYJAUg-1583680890045)(https://ask.qcloudimg.com/http-save/yehe-1522219/6is6t37iks.jpeg)]
5.提供了API接口调用模型,同时也提供了Python和R调用示例代码,如下Fayson在命令行测试:
curl -H "Content-Type: application/json" -X POST http://cdh05.fayson.com/api/altus-ds-1/models/call-model -d '{"accessKey":"mrsqqfchljq5n1sp24r12ab4byai2uzh","request":{"petal_length":5.4}}'
(可左右滑动)
参考:
https://www.cloudera.com/documentation/data-science-workbench/latest/topics/cdsw_models_examples.html
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。