基于flask和docker技术的机器学习模型上线实现

       基于flask和docker技术的机器学习模型上线实现(一)


      之前一直想写博客,一是看到博客上很多好的文章,给我很多可资之用,因此萌生进行技术传播的想法,二是也是对自己的学习做总结,督促自己学习进展。是为前言。
    自己做的课题是基于重症监护室(ICU)数据的病人死亡率预测,简而言之,是对ICU数据做分析处理,搭建机器学习模型,预测病人在住院期间死亡的概率,从而为医生决策做支持。在完成MATLAB 模型搭建工作之后,根据项目需要,需要对模型进行上线,以便可以进行Web展示。
    这里涉及技术路线选择问题。选择主要基于两点考虑:(1)方便调用机器学习模型,搭建过程简单,不必过分受限于复杂的技术;(2)搭建好的模型便于部署和扩展。基于上述考虑,我选择了两种技术:flask和docker。(1)flask技术是基于Python的微服务器框架,可以方便实现 restful api调用。同时,Python有很多机器学习开源社区,提供很多学习资源,常见的工具有scikit-learn,方便后续机器学习模型搭建;(2)docker是基于容器的虚拟化技术,可以方便部署运行环境,避免不同平台(PC,笔记本等)配置差异带来的运行问题。只需要简单的从docker hub上pull或者push就可以实现运行环境的上传或者部署。
本博客分为三部分:1)docker,virtual machine环境搭建;2)基于flask和docker容器技术的微服务器搭建;3)机器学习模型上线实现;
下面简单介绍docker,virtual machine环境搭建。本电脑为win7 professional系统,在window环境下搭建系统,推荐使用docker toolbox,提供了安装工具箱,网上有一个比较好的教程:安装教程
安装好之后,电脑桌面上出现:
Docker Quickstart Terminal

Oracle VM VirtualBox

Kitematic (Alpha)
在C盘中出现文件夹:
其中,目录
C:\Users\LiuJiankang\.docker\machine\machines\default
      存放disk文件,将dockerfile或者docker-compose文件放置这个路径下,可以方便执行该文件从docker hub 上pull镜像,从而显现环境搭建过程。
      环境搭建好之后,下面简要对上述三个软件进行介绍。先从Docker Quickstart Terminal 开始。
   一、Docker Quickstart Terminal 
     Docker Quickstart Terminal提供了虚拟linux执行环境,可以执行常见的Linux指令,例如,当定位到dockerfile或者docker-compose文件位置时(本机),需要指令有:
cd \
cd Users
cd ~
cd \.docker\machine\machines\default
    想要查看正在运行容器时,执行指令:
docker ps
     有时,需要进入容器内对容器进行操作,在执行上述指令后,知道正在运行容器的容器号,可以执行下述指令进入容器
docker exec  -it bc2a50a92b21  /bin/bash 
当需要对指令进行copy或者粘贴的时候,可以通过以下方式:
    
    点击标注的位置-》编辑即可出现相关操作。
   二 、 Oracle VM VirtualBox
      下面介绍Oracle VM VirtualBox,Oracle VM VirtualBox执行默认操作就可以了,一般不需要变动。
   三 、 Kitematic (Alpha)
      在初始运行时,需要注册docker hub账户,当然,也可以skip。注册账户后,可以对镜像的自我管理,上传自己的镜像。
      下面是Kitematic (Alpha)功能介绍,如图:
    
        
       1:镜像,现在下载的镜像。
       2:点击该按钮,可以根据需要下载库中的镜像,例如,1中的镜像可以通过搜索scikit-learn找到,安装非常简单。
       3:对镜像进行操作,例如stop ,restart等,在1中,点击×号可以移除镜像。
       4:日志,可以监测相应容器运行是否正常,根据日志检查错误。
       5:volume挂载,点击可以找到本机目录下文件位置,通过该位置添加文件,可以挂载代码或者数据,并且可以做到热启动,相关的改变可以实时反映在容器上。
       6:Docker CLI,负责指令执行,功能和Docker Quickstart Terminal 几乎相同。

总结:

   本篇博客总结了安装过程,对三个软件即Docker Quickstart Terminal, Oracle VM VirtualBox,Kitematic (Alpha)进行了简要介绍,为下文安装镜像打好基础。
参考资料:
    
      



Docker是一种容器化平台,可以用来打包和发布软件应用程序以及其依赖项,使其能够在不同的环境中运行。Flask是一个Python的Web框架,用于构建轻量级的、负载较小的Web应用程序。机器学习模型是一种用于训练和预测数据的算法。 结合这些概念,可以使用Docker来部署一个基于Flask机器学习模型。首先,我们可以将机器学习模型开发为一个Python脚本或Jupyter Notebook。然后,使用Docker将该脚本打包为一个容器映像。 在编辑Dockerfile文件时,我们可以从适当的基础映像(如Python映像)开始,安装所需的Python库和依赖项。随后,将机器学习模型的代码和数据复制到容器中,并设置一个Flask的应用程序来提供API接口。 通过配置Dockerfile文件,我们可以指定容器运行时所需的环境变量和端口号。这样,我们就可以在容器中运行Flask应用程序,并暴露一个API端口供外部访问。 一旦创建了该容器映像,我们可以使用Docker容器命令来运行容器,并将其部署到云平台或本地服务器上。通过调用API接口,我们可以向容器发送数据,并获取机器学习模型的预测结果。 使用Docker来部署Flask机器学习模型带来以下好处: 1. 隔离性:容器化的机器学习模型可以隔离运行在不同环境中,保证了模型的可靠性和可复现性。 2. 扩展性:通过在云平台上部署容器,可以轻松地扩展模型的计算资源,以支持更大规模的数据集和更复杂的机器学习任务。 3. 灵活性:通过Docker容器,我们可以将机器学习模型与其他应用程序或系统集成,实现更灵活和全面的功能。 总之,使用Docker容器来部署Flask机器学习模型是一种可行且有效的方式,可以加快模型的开发、部署和运行。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值