如何快速部署一个机器学习在线预测系统

七牛的自定义数据处理平台提供高性能 GPU 计算机群及自动伸缩容器集群方便开发者对云存储中的大量图片/音视频/文档数据进行云端机器学习,包括图像分类、视频分析、语音识别以及自然语言处理等等。简单易用的自定义数据处理平台可以帮助开发者快速构建机器学习应用,实现在云端进行训练、分类和预测。

本文介绍如何使用七牛自定义数据处理平台快速部署一个机器学习在线预测系统。主要分为以下三个步骤:

  • 第一步:构建机器学习应用容器镜像
  • 第二步:在平台上注册及部署机器学习应用
  • 第三步:使用机器学习系统在线预测

前期准备

  • 一个七牛账号
  • 一个七牛云存储九折优惠码:61d1fd4d 
  • 本地运行 Docker 版本需为 1.12.0 及以上
  • 一个已开发好的机器学习项目应用

本示例使用开源人脸识别项目 Openface 进行实践, Openface 是用 Torch 和 Python 实现的一个基于深度神经网络的开源人脸识别系统,该项目已提供 Docker 镜像。

网址:https://cmusatyalab.github.io/openface/

一、构建机器学习应用镜像

开发完机器学习应用后需要将其构建成一个基于 Linux ,可运行的 Docker 镜像。Docker 镜像在构建时需要在 Dockerfile 中指定入口程序(ENTRYPOINT 或 CMD),同时该入口需要满足:

  • 启动后监听 9100 端口
  • 接受 HTTP POST /handler?cmd=XXX&url=XXX 的请求,并返回数据处理结果
  • 在一个自定义的路径上接收 HTTP GET 请求,并返回该程序当前的健康状态(可选)

镜像制作完毕后,建议在本地运行该 Docker 镜像,并发送两种数据请求和健康检查请求,来确认镜像功能正常。镜像的构建和验证可以参考 Demo

二、在平台上注册及部署机器学习应用

 

1、注册七牛帐号,并使用七牛云存储九折优惠码61d1fd4d 充值,

在个人页面点击充值,进入充值页面

在充值页面的下方有“使用优惠码”选项。填入我们的2017年七牛最新的9折优惠码: 61d1fd4d,点击使用即可享受优惠折扣。

这里得说一下七牛的折扣是1万以上95折,1万以下99折。也就是说我们一次充值10001也是可以享受95折的。用最少的钱享受最大的优惠。

2、首先通过命令行 qdoractl 工具上传机器学习应用的容器镜像推送到七牛自定义数据处理镜像仓库,运行如下命令:

提示:怎么获取或者找到Access Key 和 Secret Key

3、注册一个机器学习应用,运行如下命令:

注:<ufop> 为机器学习应用在线预测时调用的接口名称,只能由 0-9、a-z、-、_ 组成,第一位必须是字母,长度为 4-20 个字符以内。在自定义数据处理平台上具有唯一性,创建后不能修改。

本示例将开源人脸识别项目 Openface 注册为 faced:

4、生成发布版本的配置文件,运行如下命令:

当前目录会生成一份名叫 dora.yaml 的配置文件,该配置文件包含下列参数:

修改 dora.yaml 的配置文件。如下是一个已经修改好的配置文件的内容:

5、基于当前目录下配置文件 dora.yaml,向服务器发出一个创建发布版本请求,运行如下命令:

6、调整实例数,创建完一个发布版本后,运行如下命令:

如例:

调整实例数命令成功后,命令行工具会提示查看这次实例调整的最终执行状况,运行如下命令:

可以看到机器学习应用的两个实例已经正常启动了。

三、使用机器学习系统在线预测

机器学习应用的实例启动之后,就可以直接通过 URL 调用注册的接口名称进行在线预测。使用方式如下:

本示例已经使用 Openface 项目对 Trump 的一些个人照片进行了学习训练,当将从七牛云存储中访问一张新的 Trump 的照片时,调用注册的接口名称 faced 识别是否为 Trump 的照片,得到如下信息:

表示 87% 的确认这张照片是 Trump 的照片。

时间: 2024-10-04 23:16:57

如何快速部署一个机器学习在线预测系统的相关文章

使用ansible快速部署一个主流的Web架构

拓扑: 拓扑说明: 两台服务器配置Keepalived+Nginx做双主模型的Load Balance,主机名为lb1和lb2 两台服务器配置lamp,用于处理动态资源请求,主机名为lamp1和lamp2 两台服务器配置varnish作为静态资源缓存服务器,主机名为varnish1和varnish2 两台服务器配置Nginx用于处理静态资源请求 额外需要一台服务器安装ansible,使用ansible批量管理所有服务器 关键技术点: 1. Keepalived配置了邮件报警脚本,当节点的状态发生

快速部署一个LNMP

1.安装nginx # wget http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.8.1-1.el7.ngx.x86_64.rpm # rpm -ivh nginx-1.8.1-1.el7.ngx.x86_64.rpm 2.安装PHP # yum install php-fpm  php-mysql -y # systemctl enable php-fpm # systemctl start php-fpm 3.在nginx主机上配置p

有了 serverless,前端也可以快速开发一个 Puppeteer 网页截图服务

更多云原生技术资讯可关注阿里巴巴云原生技术圈. Puppeteer 是什么? puppeteer 官网的介绍如下: Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default, but can be configured to run full (non

Redmine与Zentao同机快速部署指南

Redmine与Zentao 同机快速部署指南 1.环境 系统:CentOS 7 x64 软件:Redmine 3.0.Zentao 7.2 Source Redmine 3.0 是先安装的,目录 /opt/redmine,访问地址 http://127.0.0.1/redmine Zentao 7.2 是后安装的,目标访问地址 http://127.0.0.1/zentao 2.已知 Redmine与zentao 都依赖 apache mysql, apache 监听端口为 80 8080 s

【Spring Boot入门】模拟在线票务系统

前言 最近在学习Spring Boot,之前看有人说学习编程最好的方法就是自己动手写程序,有个前辈推荐自己做一个模拟在线票务系统的服务.我便自己动手做了一个. 该项目的实现采用了Spring Boot + MyBatis,集成Spring Security和JWT实现用户的认证和授权. 项目结构如下: 设计思路 主要有三个对象:用户.票和订单. 用户有ID.用户名.密码.头像在服务器地址URL等个人信息.用户的方法有:注册(/customer/register).登录(/customer/log

PHP基于B/S模式下的校园在线投票系统,源码分享

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个校园在线投票系统,系统web前端设计工具为Adobe Dreamweaver,前端开发语言html+css+javascript,php后端语言和mysql数据库. 从国际互联网到校园网,企业局域网,各种网上投票系统随处可见,意见调查,用户信息统计,经营情况调查都可以作为投票的内容.校园在线投票系统凭借其方便快捷等特点,已经成为统计收集信

SSM框架下的JAVA学生在线选课系统

今天和一个朋友共同完成了一个学生在线选课系统项目,我们在开发时选用的框架是SSM(MYECLIPSE)框架.我这个朋友知识有限,只会这个框架,哈哈,都是为了方便他.和往常一样选用简单又便捷的MYECLIPSE作为开发工具,这是一个 后台项目.这个系统的介绍是这样的:学生在线选课系统对于学校的决策者和管理者来说是至关重要的.针对选课系统的特点及其应用需求,采用基于JAVA的集成开发环境,开发出一套集数据查询.数据交换和数据维护等功能的网上模拟选课系统.设计了一种基于Web的学生选课系统,该系统采用

如何快速搭建一个完整的移动直播系统?

移动直播行业的火热会在很长一段时间内持续,通过和各行业的整合,从而成为具有无限可能性的行业.主要因为以下三个原因: 第一,移动直播的UGC生产模式比PC端的直播更明显,人人都有设备,随时随地开播,完全顺应了互联网时代的开放性原则,能刺激更多人去创造和传播优质内容. 第二,网络带宽和速度在逐渐提高,网络成本在逐渐下降,为移动直播提供一个极佳的发展环境.文字.声音.视频.游戏等都会在移动直播中呈现,创造出更加丰富的用户体验.直播可以以SDK的形式接入到自己的应用中,比如,教育领域中的课后辅导完全可以

Shell脚本快速部署Kubernetes集群系统

本文紧跟上节所讲的手动部署Kubernetes管理Docker篇所写,本篇主要内容利用Shell脚本完成快速部署Kubernetes集群.上节博文看过的朋友也能感觉到部署过程相对比较简单,那么,出于简化工作流程,推进运维自动化角度来说,于是花了2/3天时间写这个部署Kubernetes脚本. 运维工作中,常常会遇到部署各种各样的服务,建议:常规部署都应该尽量使用脚本完成,一方面提高自身脚本编写能力,另一方面推进运维自动化. 详细部署说明文档:http://lizhenliang.blog.51c