云计算 频道

只需5分钟,教你完成华为云TensorFlow环境搭建

  随着全球科技变革的推进,人工智能成为各大公司的研究热点和战略重心。TensorFlow是谷歌推出的开源机器学习框架,自开源以来便受到极大关注,是GitHub社区上最受欢迎的机器学习、深度学习项目之一。目前,TensorFlow可以在多个云平台上部署运行,但仍存在软件的依赖与管理问题,而利用Docker技术具有的快速部署与可移植等优势,可以实现TensorFlow的虚拟化异构,解决TensorFlow环境依赖的问题,并为科研人员及工程师提供便捷的开发环境,具有现实的应用意义。

  本文将介绍一种快速搭建TensorFlow开发环境的方法,通过华为云上的容器服务一键式部署,5分钟完成免费的云上TensorFlow环境的搭建。

  传统搭建方式

  传统深度学习开发环境搭建在虚机或物理机上,需要事先准备好一台可访问外网的虚拟机或物理机,然后配置yum源,下载安装一系列的系统库,然后通过pip安装常用的机器学习、深度学习相关python库。如果你使用的GPU模式的TensorFlow,还需要手动安装指定版本英伟达显卡驱动,CUDA计算库。整个安装过程非常繁琐,你会碰到各种奇怪的问题,很多基本用法在不同版本之间都是不同的,而且有时并不是安装一个库的问题,同时涉及与系统库的交互,对于没有具备linux相关知识的人将是个极大挑战性的任务。

  华为云容器部署

  容器化部署就非常简单,不仅功能和传统方式的一样,同时由于镜像使用的是官网镜像,只需要关注TensorFlow的版本即可,无需担心依赖库版本匹配问题。

  方法如下:

  第一步:注册华为云账号并实名认证(如已有华为云实名认证账号可直接进行下一步)

  账号注册

  进入华为云官网首页https://www.huaweicloud.com,点击右上角的【注册】按钮:

  设置账号名、密码、手机号、短信验证码并勾选“我已阅读并同意《华为云用户协议》和《隐私政策声明》”,单击【同意协议并注册】即可完成注册。

  实名认证

  用户注册完华为云账号后需要进行实名认证才能使用相关服务,实名认证流程也非常简单,在用户中心可以看到实名认证的提示信息,根据页面引导选择用户类型和认证类型进行认证即可。

  第二步:开通3天免费容器集群

  在【云容器引擎】-【体验中心】-【初级案例】模块找到购买集群,单击【体验】按钮根据界面引导进行免费集群和节点的创建。页面链接:https://console.huaweicloud.com/cce2.0/?region=cn-north-1&locale=zh-cn#/app/guidance/list

  资源创建完后,到【云容器引擎】-【资源管理】-【节点管理】找到容器节点弹性ip后记录下来,在第三步部署Tensorflow应用时会用到。页面链接:https://console.huaweicloud.com/cce2.0/?locale=zh-cn&region=cn-north-1#/app/resource/node/list

  第三步:Tensorflow环境一键式部署

  在【应用编排服务】-【模板市场】-【公共模板】找到Tensorflow示例模板,单击【创建堆栈】按钮开始部署。(页面链接:https://console.huaweicloud.com/aos/?region=cn-north-1&locale=zh-cn#/app/demoTemplate/demoDetail?id=62e89c6c-7910-8e1a-626d-50b35faccc6b

  通过这个模板,就可以一键式的完成一个TensorFlow开发环境的部署,并可以通过Jupyter Notebook的界面进行深度学习程序的开发和验证。)

  填写部署参数,堆栈名称、弹性IP(第二步中记录的弹性IP) 、填写Jupyter notebook的登陆密码

  一键式部署示例模板,5分钟内创建成功。

  ● 进入堆栈详情,在输出参数中有开发环境的访问地址,点击链接即可:

  输入创建堆栈时填写的登陆密码即可访问Jupyter notebook进行开发:

  小狗检测示例

  我们可以在刚创建好的开发环境跑个简单的人工智能小程序:检测上传的小狗图片,识别小狗种类。

  先在Jupyter notebook上传一张小狗图片“dog.jpg”。

  新建python的开发页面

  将下面这段小程序的代码粘贴到python页面,按住shift+回车键执行。

  from keras.applications import ResNet50

  from keras.preprocessing.image import img_to_array, load_img

  from keras.applications import imagenet_utils

  from keras.applications.resnet50 import preprocess_input, decode_predictions

  import numpy as np

  import io

  import tensorflow as tf

  def prepare_image(img_path, target):

  img = load_img(img_path, target_size=(224, 224))

  if img.mode != "RGB":

  img = img.convert("RGB")

  x = img_to_array(img)

  x = np.expand_dims(x, axis=0)

  x = preprocess_input(x)

  return x

  model = ResNet50(weights="imagenet")

  graph = tf.get_default_graph()

  image = prepare_image("dog.jpg", target=(224, 224))

  with graph.as_default():

  preds = model.predict(image)

  results = imagenet_utils.decode_predictions(preds)

  data = []

  for (imagenetID, label, prob) in results[0]:

  print("Category: ", label, "Probability: ", float(prob))

  查看执行结果。执行过程耗时大概20秒左右。识别结果置信度最高为玩具贵宾犬66.78%,第二名是迷你贵宾犬29.71%,检测结果正确。

  这就是一个基于华为云容器部署的Tensorflow开发环境,以及一个简单的开发示例,如果开发的程序需要进行大规模的训练,建议使用GPU集群资源,它能够更高效地执行图像的计算。另外,若开发过程发现我们的镜像提供的计算库不够丰富,可以在Jupyter Notebook页面执行shell命令,安装python库。如果还想订制个人化的开发环境,可以手动构建镜像上传至华为镜像仓库,然后修改模板元素及参数,生成适合个人场景的模板。

特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章