文章推荐
说在前面:达人课是gitchat的一款轻阅读产品,由特约讲师独家发布。每一个课程你都可获得6-12篇的深度文章,同时可在读者圈与讲师互动交流。gitchat达人课,让技术分享更简单。进入
温馨提示:阅读本文章建议先学习
作者介绍
付强,十余年从业经验,从 c 语言到 web 开发,从微服务架构到移动端开发,涉猎范围很广。曾就职于趋势科技、诺基亚,在德国和硅谷的 startups 工作过,现在从事物联网方向的创业。
课程介绍
本课程是的后续课程,紧接上一课程内容,来讲解如何基于 tensorflow 的 object detection api 训练一个新的物体识别模型,在这个过程中会讲解机器学习和深度学习的一些知识和概念。通过本课程的学习,将获得机器学习从训练到应用的 hands-on 的经验,包括 data labeling、深度学习环境搭建、可视化学习过程等,从而达到让零基础机器学习的读者能够快速高效的解决实际问题的目的。
第01课:训练一个独一无二的模型
大家好,很高兴能在这里继续 tensorflow on android 的课程。
在中我们已经学会了如何使用一个事先训练好的 pre-trained model 来识别图片中的多种物体,这很好、也很酷,即使没有任何机器学习基础也可以做出一个相当专业的应用了,也许有的读者已经把静态图片识别移植到了视频监控上面,开始监控大门口的人流了呢!
注意:建议先学习《tensorflow on android:物体识别》这门课,也可以先学习本课再学上一门课。因为先训练再应用是一个正常的流程,而在这里先讲应用再讲训练只是遵循由简到繁的原则,总之按照自己的情况自由选择就好了。
通过上一门课程的学习,相信给大家打开了一扇新世界的大门。就像之前开发 web 应用的时候,可以从开源社区找到很多轮子,而不需要重新开发,在机器学习的世界里,也可以从开源社区找到很多框架、算法、模型等工具,我们也学习了去哪里找这些工具、如何学习使用这些工具。
但是如果只是使用事先训练好的模型,在实际工作中,往往还不能真正解决问题。以物体识别为例,如果要识别的物体,如熊猫,不在这 pre-trained 模型训练的范围里,怎么办?我们需要训练一个独一无二、属于自己的模型。
其实大部分开源的模型都公开了其训练的代码,所以可以通过这些代码加上我们自己的数据来进行训练,从而获得一个满足自己业务需求的模型。本课程中将通过使用 object detection api 训练一个可以识别熊猫的模型来讲解整个流程,将要学习的东西包括:
- 机器学习/深度学习的一些重要概念和术语,本门课程面向没有任何机器学习基础的读者,所以会用尽量简单和直白的语言来描述。
- tensorflow-gpu 的安装和环境配置。
- 准备训练数据和 data-labeling。
- 可视化学习过程。
- 导出学习结果。
注意:有些厂商号称开源了某某模型,但是实际上并没有公开其训练部分的代码,这种其实算不上开源,因为没有办法定制这个模型。
通过本课程的学习,我们将补齐机器学习中关于训练部分的知识,这样就可以定制这个工具来解决真正的问题了,当完成了这一步以后,再去看深度学习的算法推导或者 tensorflow 的示例代码,应该会容易不少,因为知其然,再知其所以然,这应该是一个较优的学习过程。回想一下在学习 web 编程、ios 编程等的时候,是不是也是这样一个过程?
在本课程中,我们需要写一些 python 代码,所以必须了解一些 python 的知识,不过,不需要成为 python 高手,只需要了解变量和函数声明、模块导入的知识就足够了。如果英文比较好,可以直接参考 ,如果喜欢在中文的环境里面学习,可以参考 。
本课程使用 python 的版本为 2.7,请事先安装和配置好。
接下来我们先学习一些机器学习的知识和术语,在后面的实际操作中会用的到这些知识和术语。