阿里pai深度学习组件:tensorflow实现图片智能分类实验

fous数据实验室 fous数据实验室     2022-09-18     450

关键词:

PAI简介

阿里云机器学习PAI(Platform of Artificial Intelligence)是一款一站式的机器学习平台,包含数据预处理、特征工程、常规机器学习算法、深度学习框架、模型的评估以及预测这一整套机器学习相关服务。由于目前PAI还属于公测阶段,所以是不收费的。但是PAI底层依赖于maxcompute(计算)和oss(存储),所以会收取一定的托管费和深度学习存储费用。不过实测发现每天差不多一两分钱,充10块能玩好久。

实验准备

实验的整个过程都在官方文档有很详细的说明:https://yq.aliyun.com/articles/72841,所以我看着文档做了一遍,最终是成功了,不过也发现一些问题,在这里把它记录下来。

首先为了完成实现我们得有阿里云账号,申请云账号AccessKey,然后开通机器学习和oss服务,这些都可以在官网相应产品下点击开通,很方便。

进入控制台->机器学习,从这里创建一个项目,所属区域一定要选择华东2,因为目前阿里只有华东2区支持深度学习的GPU集群,而且oss在华东2区不产生流量费用,在读取OSS数据时会产生请求费用,请求费用为0.01元/万次。OSS的存储费用为0.148元/GB/月,还是很便宜。

深度学习与GPU

深度学习是人工智能 (AI) 中发展迅速的领域之一,可帮助计算机理解大量图像、声音和文本形式的数据。利用多层次的神经网络,现在的计算机能像人类一样观察、学习复杂的情况,并做出相应的反应,有时甚至比人类做得还好。这样便提供了一种截然不同的方式,用于思考数据、技术以及人类所提供的产品和服务。通常说到计算我们首先想到的是CPU,GPU是图形处理器。CPU和GPU的设计目标是不同的,针对了两种不同的应用场景:CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境(扩展:https://www.zhihu.com/question/19903344)。

上面的图是从NVIDIA官网扒过来的,CPU 由专为顺序串行处理而优化的几个核心组成,而 GPU 则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构。(官网链接:http://www.nvidia.cn/object/what-is-gpu-computing-cn.html)

阿里PAI深度学习使用的GPU是NVIDIA Tesla M40,一款专注深度学习模型训练的GPU,性能还是很强劲的,这是官方一张图:

GPU和CPU在深度学习训练时GPU速度更快,这点很重要,因为机器学习会有大量复杂算法,NVIDIA GPU 特别擅长处理并行工作负载,可让网络提速 10-20 倍,从而将各个数据训练迭代周期从几个星期缩短为几天。实际上,GPU 在仅仅三年内便将深度神经网络 (DNN) 的训练速度提高了 50 倍(这一速度远远超过摩尔定律),预计未来几年还将再提高 10 倍。

开始实验

对机器学习领域的深度学习有了一个简单的认识之后,我们利用阿里PAI做一个简单的实验:Tensorflow图片分类。上面已经准备好了必要的环境,接下来进入机器学习模块,点击首页,从模板创建一个实验:Tensorflow图片分类,在左侧设置里面开启oss访问权限。然后得到下面的可视化模型:

点击组件进行参数设置。这里的参数要配置执行训练的python代码文件,训练集文件目录,以及输出模型目录。这些都是放在oss上的,所以要先在oss上创建bucket,然后创建文件夹,把我们需要的资源放进去。这里采用的是cifar-10数据集(http://www.cs.toronto.edu/~kriz/cifar.html),由60000张32*32的RGB彩色图片构成,共10个分类,50000张用来训练模型,10000张做测试,交叉验证。所有资源可以在这里下载:https://help.aliyun.com/document_detail/51800.html。实验目的是:利用cifar-10数据集训练模型,然后给定一张图片让机器自己识别它是哪一类。

如图,创建四个文件夹:1)check_point:用来存放实验生成的模型。2)cifar-10-batches-py:用来存放训练数据以及预测集数据,对应的是下载下来的数据源cifar-10-batcher-py里面的文件和预测图片bird_bullocks_oriole.jpg文件,放在一起就行。3)train_code:用来存放训练代码,也就是cifar_pai.py。4)predict_code:用来存放预测代码cifar_predict_pai.py。

训练模型

一切准备好之后,我们就可以进行实验了。可以看上面的图,点击训练模块,进行参数设置:python代码文件选择train_code/cifar_pai.py文件,数据源目录选择cifar-10-batches-py文件夹,输出目录选择check_point文件夹。然后右键点击该模块,选择“执行该节点”,开始训练模型。这个过程大约需要20分钟左右。右键点击模块可以查看日志,执行完之后模块会有一个绿色的勾,表示完成。生成的模型在check_point/model/文件夹下(注意文中红色部分,设置参数时注意选择正确,否则会报错)。

预测结果

模型训练完成,接下来就是利用模型进行图片分类。设置预测模块的参数:python代码文件这里要选择predict_code/cifar_predict_pai.py文件,数据源目录和输出目录和上面一样选择对应文件夹。这里执行该节点会报错,查看日志会显示如下结果:

报错原因是ndarray没有Index函数,需要把下载的cifar_predict_pai.py修改:

 1  # Predict
 2  prediction = model.predict([img])
 3  print (prediction[0])
 4  print (prediction[0])
 5  #print (prediction[0].index(max(prediction[0])))
 6  num=['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','truck']
 7     
 8  #注释掉这行:
9  # print ("This is a %s"%(num[prediction[0].index(max(prediction[0]))]))
10  #改为下面代码: 11  print ("This is a %s"%(num[np.argmax(prediction[0])]))

应该是python2和3版本差异问题。修改完之后再上传到oss相应目录,再次运行节点前先删除check_point下stdout文件夹(不要删model,训练的模型可以继续用),等待执行结束可以到logview查看预测结果。

这样就完成了训练模型和结果预测。其实整个实验过程比较简单,毕竟图形化界面操作体验很好,再加上是案例,提供代码,所以目的就是熟悉阿里PAI深度学习的操作步骤和实验流程,这并不是“深度学习入门xx”,只是一个案例,因为即使不懂代码和原理一样可以得到结果。机器学习是一门很深的课程,它所涉及到的很多算法原理才是学习的重点,了解常用算法的分类和不同算法的适用场景才能发挥机器学习的价值,解决了实际问题才是机器学习的根本所在。

 

~到此为止~

阿里云机器学习平台——pai平台

在云栖TechDay第十五期活动上,阿里云iDST资深技术专家褚崴给大家带来了《阿里云机器学习平台》的分享,他以机器学习的概念入手展开了此次分享,演讲中他重点介绍了阿里云机器学习平台的基础架构和产品特点,并结合阿里... 查看详情

tensorflow实战google深度学习框架(代码片段)

第3章TensorFlow入门3.1TensorFlow计算模型-计算图3.1.1计算图的概念Tensorflow中所有计算都会被转化成计算图的一个节点,计算图上的边表示了他们之间的相互依赖关系。3.1.2计算图的使用Tensorflow的程序可以分成两个阶段:定义计算、... 查看详情

pai文本分析实验:常用文本分析组件及案例实战

...程:机器学习PAI眼中的《人民的名义》。准备开始还是在阿里PAI环境下,我们从实验模板:人民的名义分析进入,然后点击去PAI平台创建,这样就在机器学习页面创建好了实验。接下 查看详情

人工智能深度学习入门练习之(21)tensorflow–创建计算图(代码片段)

...建计算图下面的代码在内存中创建一个默认计算图。importtensorflowastfx=tf.Variable(3,name="x")y=tf.Variable(4,name="y")f=x*x*y+y+2代码中声明了变量和函数,这将会在内存中创建一个默认计算图。默认计算图默认计算图是TensorFlow默认生成的计... 查看详情

深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全

原文地址:ImageCompletionwithDeepLearninginTensorFlowbyBrandonAmos原文翻译与校对:@MOLLY&&寒小阳([email protected])时间:2017年4月。出处:http://blog.csdn.net/han_xiaoyang/article/details/52665396声明:版权所有,转载请联系作者并 查看详情

深度学习keras+tensorflow实现猫和狗图像分类

...VGG,Resnet)做过了,迁移学习我就不说了,我自己用Keras+Tensorflow完整的实现了一遍。 准备工作:数据集:Dogsvs.Cats 注册激活困难,自己想想办法,Ps:实在注册不了百度云有 查看详情

《深入理解tensorflow架构设计与实现原理》_彭靖田学习材料整理

 本书从基本概念、内部实现和实践等方面深剖析了TensorFlow。书中首先介绍了TensorFlow设计目标、基本架构、环境准备和基础概念,着重介绍了以数据流图为核心的机器学习编程框架的设计原则与核心实现,紧着还将TensorFlow与... 查看详情

github上stars最多的53个深度学习项目,tensorflow遥遥领先

...tps://github.com/aymericdamien/TopDeepLearning项目名称Stars项目介绍TensorFlow29622使用数据流图计算可扩展机器学习问题。Caffe11799Caffe是一个高效的开源深度学习框架。NeuralStyle10148Torch实现的神经网络算法。DeepDream9042DeepDream,一款图像识别... 查看详情

深度学习与图神经网络核心技术实践应用高级研修班-day1tensorflow和pytorch(代码片段)

深度学习与图神经网络-Tensorflow和Pytorch1.TensorFlow和Pytorch2.TensorFlow简介3.TensorFlow的API4.Pytorch简介5.Python安装6.TensorFlow安装7.Pytorch安装1.TensorFlow和Pytorch2.TensorFlow简介TensorFlow最初是由GoogleBrain团队(隶属于Goo 查看详情

深度学习——深度学习中的梯度计算

...回顾和学习。本节主要是了解深度学习中(或者说是tensorflow中)梯度的计算是怎么做的。计算图  在学习tensorflow中,我们知道tensorflow都是基于图来 查看详情

《神经网络与深度学习》卷积神经网络cnn及tensorflow代码实现示例

转自:http://blog.csdn.net/cxmscb/article/details/71023576一、CNN的引入在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连的。当输入层的特征维度变得很高时,这时全连接网络需要训练的参数就会增大很多,计... 查看详情

深度学习——反向传播tensorflow实现(代码片段)

1importtensorflowastf2importnumpyasnp34"""5使用tensorflow实现简单的线性回归y=np.dot(x,W)+b6"""78deff1():9"""10先使用常量进行构建,展示大致的业务逻辑11:return:12"""13#一、建图14withtf.Graph().as_default():15#1、创建模型输入16input_x=tf.constant(17value=[[1,2,3... 查看详情

阿里pai_机器学习-入门介绍

世界上机器学习的从业者基本是算法的使用者10万,真正算法的研究者2万 查看详情

tensorflow实现基于深度学习的图像补全

目录■简介■ 第一步:将图像理解为一个概率分布的样本  你是怎样补全缺失信息的呢?  但是怎样着手统计呢?这些都是图像啊。  那么我们怎样补全图像? ■ 第二步:快速生成假图像 &nb... 查看详情

阿里云机器学习平台pai之理论基础

🍓在前几章的学习中,我们学习了阿里云系列的计算平台MaxComputer、大数据治理和分析平台DataWorks和可视化平台QuickBI,今天进入阿里云大数据的最后部分的学习——机器学习平台PAI,对往期内容感兴趣的小伙伴可... 查看详情

tensorflow实战-tensorflow和其他深度学习框架的对比-第2章

2TensorFlow和其他深度学习框架的对比182.1主流深度学习框架对比182.2各深度学习框架简介20TensorFlowTensorFlow是相对高阶的机器学习库,用户?方便地用它设计神经网络结构,而不必为了追求高效率的实现亲自写C++或者CUDA代码。TensorFlo... 查看详情

深度学习tensorflow如何使用多gpu并行模式?

TensorFlow可以用单个GPU,加速深度学习模型的训练过程,但要利用更多的GPU或者机器,需要了解如何并行化地训练深度学习模型。常用的并行化深度学习模型训练方式有两种:同步模式和异步模式。下面将介绍这两种模式的工作... 查看详情

阿里云机器学习pai构建ai集团军作战,联手intel在ai软硬件领域发力

第一届“英特尔创新大师杯”深度学习挑战赛已在阿里云天池平台如火如荼的进行中。本次大赛由英特尔主办,阿里云计算平台机器学习PAI联合达摩院以及中文信息协会等组织机构联合承办,共有近7500支队伍报名参赛... 查看详情