背景介绍
PyTorch是由Facebook人工智能研究院于2017年1月在github上开源的 学习框架,一经开源就迅速吸引了人们的眼球。其历史可以追溯至2002年使用Lua语言的Torch框架,并由其幕后团队一手打造。PyTorch作为Torch框架的继任者,并不仅仅只是移植代码并提供接口,而是深入支持了Python,对大量模块进行了重构,并新增了最先进的变量自动求导系统,成为时下最流行的动态图框架。
在入门时,PyTorch提供了完整的文档,并有着活跃的社区论坛,对于新手而言上手遇到的难关容易解决。更深入一些,在特性设计上,PyTorch对于抽象出的概念较少,易于理解,同时提供的API的设计理念与Torch一脉相承,符合人的一般思维,接口优雅。而框架最核心的性能方面,PyTorch的速度表现在许多评测中胜过TensorFlow和Keras等知名框架。
本文将以一个使用了pytorch的demo代码pytorch-classify为例,通过华为云上的容器服务一键式部署,5分钟完成免费的云上pytorch代码的部署。
传统部署方式
首先是准备环境。先有个服务器,这台服务器需要能够被外部访问。而后在操作系统里使用yum安装需要的python(3.6.5)、pip、git,再通过pip等方式获取到代码需要的依赖(pytorch 0.4.1),准备好软件依赖后检查pytorch-classify代码所需的各项环境配置是否满足要求。而后通过git拉取版本代码放入环境内,通过脚本运行起来。
在简单环境下,这种部署方式是没有任何问题的。但是由于真实环境复杂,事情并没有那么简单,上面的每一步都可能会有问题,并且有些问题很难处理。比如说安装软件的时候,环境上已有2.7.11的python版本,并且已经为另外一个项目所使用,那么此时的你并不一定有能力与魄力选择将python版本升级并还能保证一切都是ok的。
本方法在复杂环境下部署时间上限与影响范围极难估计,只适合简单应用的部署。
华为云上容器部署方式
容器依托操作系统提供的沙箱机制,能够将应用及其运行环境直接打包为镜像,一次打包多次运行。同时,依托于Kubernetes(k8s)等容器编排引擎,容器支持自动化部署以及大规模可伸缩的应用容器化管理,这些特性大大方便了应用的部署。K8s使应用系统变成了一系列应用相关的配置,简单同时不易出错,在部署大型应用系统的时候也有一战之力。
一个应用系统一般会有多个应用相关的配置,虽然现在升级的时候只需要修改配置项,但是由人工逐项操作不免依然费时费力还容易出错。此时,你需要华为云的应用编排服务(AOS)。
在AOS中,一个应用系统对应一个堆栈,堆栈由模板加配置生成,只需要修改配置,其他一切由AOS负责。
依然以pytorch-classify这个应用为例,经过AOS设计器的设计,可以表示成上图表示的应用系统。一切清清楚楚,所见即所得。
实操环节
由于传统部署方式各种操作较为不便,没有提供实操的步骤。下文提供的是华为云上容器部署方式的操作指南,操作一遍之后即可得体会到AOS的便捷之处。
后文中AOS模板中包含了代码,这种方式常见于开发环境,即代码与环境分离,代码的变动相较于环境而言较大的情况下。而在生产环境推荐直接将代码打包进入镜像中使用,但是对于当前演示没有影响。
操作如下:
一、注册华为云账号并实名认证(如已有华为云实名认证账号可直接进行下一步)
1.账号注册
进入华为云官网首页,点击右上角的【注册】按钮:
设置账号名、密码、手机号、短信验证码并勾选“我已阅读并同意《华为云用户协议》和《隐私政策声明》”,单击【同意协议并注册】即可完成注册。
2.实名认证
用户注册完华为云账号后需要进行实名认证才能使用相关服务,实名认证流程也非常简单,在用户中心可以看到实名认证的提示信息,根据页面引导选择用户类型和认证类型进行认证即可。
二、开通3天免费容器集群
1.在【云容器引擎】-【体验中心】-【初级案例】模块找到购买集群,单击【体验】按钮根据界面引导进行免费集群和节点的创建。
2.资源创建完后,到【服务列表】-【弹性公网IP】找到创建好的弹性ip后记录下来,在第三步部署pytorch-classify应用时会用到。
三、pytorch-classify代码一键式部署
1.在【应用编排服务】-【模板市场】-【公共模板】模块找到pytorch-classify应用,进入模板详情页,单击【创建堆栈】按钮。
2.填写相关入参信息,包括堆栈名称、弹性ip等,并选择刚才创建的集群:
在输入中填入从第二步中获取到的弹性ip地址。
pytorch-classify选项卡中可以填写镜像的地址,由于该选项有默认值,直接略过即可。所有参数设置完以后,点击【下一步】,点击【创建堆栈】。
3.一键式部署pytorch-classify:
1分钟后堆栈创建成功。
4.进入堆栈详情,在输出参数中有pytorch-classify的访问链接,点击链接:
5.可以正常使用应用的功能:
写在最后的话
前文中的AOS模板包含了整个应用系统中所必须的各项配置,如应用的部署、依赖的配置项、外部访问所需要的服务,但是AOS能力并不止于此。AOS还有能力对于资源如虚机、网络、安全组以及中间件如数据库、消息队列等进行创建等编排操作,再大的应用也和前文的操作一样,一键式部署搞定~
如对AOS感兴趣,可以访问AOS帮助中心了解详细内容。
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。