点击“Run Training Job”,右下角是从公有云传回到PyCharm的训练日志信息:
训练完成后,训练模型保存在公有云的OBS里,你可以自己选择下载或是在云上做推理。
如果有这样的一堆工具,是我们这些实际写代码的人的福音。
Mr Qiu “某利郡后;颇与郡人相安;日知来四处无虞;早收中熟;觉风雨如期;晚稻亦可望;惟是力绵求牧;来日方长。”——宋·文天祥《与洪度瑞明云岩书》在介绍如何转型进入AI领域之前,先介绍下个人的经历。从接触AI到工作至今大概7年,我把它分为3段:(1)在校学习期;(2)实习转型期;(3)工作成长期。在校期间学的比较广,主要方向在人工智能、高频电子电路、传统图像算法、嵌入式系统等,这个阶段通过以赛促学方式,取得了一些不错的比赛成绩;实习期间有幸参与到某重点项目的“以图搜图”模块,积累了大量的图像、人工智能方面的实战经验;毕业参加工作后,主要围绕计算机视觉、算法移植优化,深度学习框架优化,机器学习等进入研究和实践,有了一定的全栈AI经验。偶有感慨,虽然资质平平,但好在目标明确,持续奋斗,也遇到很多值得感谢的人,才有机会在这里介绍下经验。
2012年,一年一度的ImageNet图像识别比赛,CNN网络AlexNet以碾压的分类性能超过第二名(SVM方法),从此深度学习开始吸引研究者的注意。但真正吸引工业界去大规模投入深度学习,大概到了2015年到2016年,这个时候,贾扬清在博士期间开源了深度学习框架Caffe,谷歌开源第一版的人工智能引擎TensorFlow,Caffe曾一度以其优秀的代码架构,便捷的开发接口等优点受到广大研究者和工程师的推崇。早期做AI开发,很多工具都不完善,需要造轮子,这里的轮子主要包括离线训练时需要开发图像标注工具、需要修改深度学习框架实现相关算子的前向和后向计算、实现卷积中间特征可视化来调优模型等,在线部署时需要自己实现算子的FP16和int8计算,需要自己写CUDA代码等。
现在,进入AI领域的开发者不再需要做这些轮子,真的很幸福。
图像标注工具LabelImg等已开源,可以直接拿过来使用;TensorFlow迭代到更加利于开发者使用,提供了很多优秀的示例,可视化工具和推理部署工具等;随着PyTorch的逐渐崛起,已经可以与TensorFlow评分秋色,开发者有了更多的选择;英伟达推出了基于GPU的推理加速工具TensorRT可以免费使用,华为也推出了基于自研芯片达芬奇的推理加速和框架MindSpore,以更高密度的算力丰富开发者的选择。
随着巨头公司全力投入AI,AI的工具也越来越完善,开发者可以将精力集中在模型开发以及业务的实现上,这是一个AI的好时代,也是AI开发者的好时代,我想现在开始转型AI正逢其时。
再回头看看这些年的AI发展历程和踩过的坑,以个人的角度提炼出传统软件开发转型到AI开发工程的方法,希望对大家有帮助。暂且把这些总结为3个部分,分别为(1)动手跑起来、(2)原理掌握起来、(3)推理部署起来。
1. 动手跑起来:
这个阶段就是通过现有开源的优秀项目进行学习,这里我推荐darknet YOLOv3,项目地址https://github.com/pjreddie/darknet。该项目框架基于C语言实现,框架清晰易于调试。初学者在下载到项目代码后首先要将该项目跑起来,通过跟踪数据在整个框架的流动大致掌握AI是怎么工作的,可以解决什么样的问题。同时在跑通搭建环境的过程中,可以快速掌握GPU跟深度学习框架是怎么结合起来工作的、深度学习框架在运行过程中需要有什么依赖。
2. 原理掌握起来:
作为优秀和经典的端到端检测算法,首先推荐以YOLO进行学习,从推出至今已迭代到第四版本。可以从第一版本YOLOv1开始进入,再到第四版本YOLOv4,掌握YOLO是如何演化的,分别作了哪些改进,改进为什么会起到性能提升的效果。网上已有大量优秀的博客,开发者可以自行去搜索阅读。结合动手跑起来阶段的代码调试,相信会进步的更快。研究完成YOLO演化过程后,有兴趣可以再去研究下R-CNN系列的检测算法,R-CNN系列算法区别于YOLO是召回率高、准确率高,但是耗时,所以综合考虑工业界一般用的更多还是YOLO。
3. 推理部署起来: