飞桨初体验和AI识虫

飞桨初体验和AI识虫

文章目录

  • 飞桨初体验和AI识虫
  • 前言
  • 一、怎么获取飞桨?
  • 二、飞桨能做什么?
  • 三、 飞桨的典型应用?
  • 四、 怎么理解飞桨的运营模式?
  • 五、AI识虫项目
  • 总结


前言

AI已经成为信息产业的新常态。不论是热搜、新闻、教育、企业,都关注着AI产品的创新和应用。我也跟随这个潮流,了解和体验AI的前沿技术。飞桨是百度力推的AI平台,是一个完整的工具链,即可以部署在本机,也可以部署在云端,还有云端IDE。随着疫情过后在线教育的持续,飞桨推出了一系列课程。我从中了解了什么是飞桨,基本架构,图像识别,以及一些常用模型。

一、怎么获取飞桨?

飞桨不但是工具链,开发环境,而且是一个学习社区,还是一个竞技场。它有点类似国外的TopCoder,或者微软的MSDN,但又很有特点。飞桨最大的特点是免费提供完整的工具链,而且提供线上开发环境,唯一的要求是参与者注册之后,通过参与比赛持续获得免费的计算资源(点数)——可以戏称为“加油”、“种地”、“割胶”或“以战养战”。也就是说,目前我使用飞桨无需付费,但是要付出劳动力。

二、飞桨能做什么?

所有流行的AI库能做的,例如线性回归、图像识别、图像分类、目标检测、目标定位、图像语义识别等飞桨都能做到。

三、 飞桨的典型应用?

飞桨比较典型的应用是快速搭建图像分类模型。我试用过scikit-learn,pytorch和azure studio,这些AI工具虽然也是由浅入深介绍AI功能,而且也涵盖线性回归、特征图提取、图像分类这样的任务,但是没有像飞桨那样从深度学习的角度出发,更多的是快速搭建机器学习的模型。飞桨则是快速搭建深度学习网络的理想工具。

例如去年和今年比较火的AI识别虫子的项目。如果使用scikit-learn、azure studio等工具,会比较复杂。使用飞桨的动态图则很直观。对于刚入门的人,参与飞桨社区的学习后就能够掌握。而且飞桨社区还出版了多本书籍,和工程师认证,进一步吸引学生和社会人士了解、学习、采用飞桨技术。

四、 怎么理解飞桨的运营模式?

义务教育。类比微软的VC、C sharp,Oracle的Java如何成为国家计算机等级考试教授的技术。百度在AI领域已经超前,普及自家的飞桨是长远规划。而且这符合互联网经济的特征,即对小规模使用者、教育行业免费授权,对商业和大规模使用者付费授权。

五、AI识虫项目

这个项目的数据集在飞桨社区有。在AI Studio注册,搜索和添加AI识虫数据集,就可以开始使用了。AI Studio提供了两种配置:

  1. 2 CPU 和 8G内存。这也是较低廉的PC配置,基本上人人都有。
  2. 4 CPU,32G内存和Tesla V100显卡的配置,这个配置主要是Tesla V100 上万元比较贵。

AI识虫的完整代码参见:我的AI识虫笔记

这份代码使用了Yolov3,训练200个epoch后模型准确率还行。模型训练过程比较耗时间,即使使用了Tesla V100 也是若干小时。我对这个项目的体会有几点:

  1. 能够学习到常用的图像操作算法。在读入昆虫数据集时,用到了图像调节亮度、缩放、翻转、剪裁,统称为“图像增广”。通过这些操作,Yolov3在训练模型时能够学习到一些剔除环境干扰的参数,而我则掌握一些图像算法。
  2. 飞桨数据读取。大多数时候,随着学习的深入和经验的积累,我们会掌握一些(1)预训练好的飞桨模型;(2)结构已经固定的待训练的飞桨模型。这时,我们主要的任务是将实际数据读入。这个项目的训练数据集不但有图片,还有xml标注文件,数据量也比较大,能够学习到常用的数据读入技巧和飞桨io api——例如如果读入单张图片,按batch size分片读入数据,以及多线程读入数据。
  3. 超参数调节。项目中优化的手段有许多,包括更新激活函数,启用dropout抑制过拟合,更换更适合应用场景的backbond,更新交并比计算公式,更新损失函数,等等。发挥主观能动性的地方挺多。
  4. 多阶段训练模型和应变能力。以往许多机器学习框架以及样例,都能比较快的结束训练。AI识虫是贴近实际的项目,训练耗时长,锻炼应变能力。模型训练中断前保存模型,重启时加载模型继续训练,为参与者提供了观察训练误差,及时调整模型参数和结构的机会。对一些有独特资源的参与者,飞桨还允许分布式训练:例如多显卡训练模型。这使得人人都有机会将模型训练成真正的“专家模型”。

总结

飞桨是一个很好的学习、采纳、实验和竞技AI技术的技术平台和社区。

你可能感兴趣的:(AI,飞桨,paddlepaddle,深度学习,paddlepaddle,ai,百度)