1 写在前面
技术成长,我的理解就是利用掌握的知识,逐渐独挡一面的过程。
奥义:坚持。
刚工作时,作为小白,
没有明确的发展路径,公司对于新人同样没有明确的要求,
于是,我开始了放羊式地工作,其实,是公司给机会学习,
非常感谢这第一段工作经历,有机会接触到人工智能方面的知识。
人工智能领域,经过1年的学习,逐渐形成自己的知识体系,
回头看时,我的学习路线如下图所示,
由图可知,我的学习过程比较简单,
从选择开发语言(Python)、框架(Flask、TensorFlow)、数据库(MySQL)到服务部署(Docker)、测试(Postman),
至此,入门人工智能。
2 学习过程
工欲善其事必先利其器。
上面的学习路线罗列了我的成长路径,不过比较抽象,
接下来我会按照顺序介绍学习过程中使用的工具,
工具熟练使用了,说明,你已经从理论到实践了,
这些工具串起来,就是完整的技术成长历程。
选择并学习计算机编程语言。
计算机作为21世纪最伟大的发明,已经如同空气般存在。
而,计算机编程语言,作为人类为使用计算机计算资源完成计算任务的利器,
百花齐放,不同的领域,都有各自的主流编程语言,
人工智能领域,首选Python,所以,我从学习Python开始,为后续的模型训练做准备。
一切故事始于Python。
要想在某个计算机细分领域内有所建树,必须熟练掌握一门该领域主流的编程语言,因为,她是你完成任务的发动机,你的脑袋好比燃料,没有发动机,燃料自然没有用武之地。
工欲善其事必先利其器,选择合适的集成开发环境。
Python集成开发环境众多,如Spider、Jupyter、VSCode、PyCharm等,
我使用PyCharm开发,她可以智能提示,选择虚拟环境,并且可以自定义虚拟环境,当然,搭配Anaconda,这里就不罗列了。
关于集成开环境,同样要熟练使用,
她不仅可以提高生产效率,还可以提高问题排查效率。
这是我学习的第一个Web框架,起初,学习Flask是为了将模型作为服务提供给客户,
Flask是使用Python开发的后台框架,天然可以集成TensorFlow(Python版)训练的模型,
将模型集成在Flask中,既可以提供模型功能,又可以自定义业务逻辑,是两全其美的工具,
但是,直接将模型集成在Flask中,模型每次更新,都需要重新上线后台服务,
没有做到解耦,在后来的规划中,打算将模型服务和后台服务解耦,
通信使用http或者grpc。
后台开发,当然离不开数据库,
最熟悉的莫过于增删改查,
这里选择MySQL社区版,开始了MySQL学习之旅。
MySQL作为OLTP利器,被众多业务系统广泛使用。
后台接口开发,接口测试是必经之路,
这里选择Postman作为接口测试工具,
Flask集成Swagger比较麻烦,所以,借助外部接口测试工具,
Postman提供云存储方案,可以团队协作,接口共享。
接口开发和测试,只是业务的第一步,
接下来要部署服务,
这里选择Docker作为服务部署的容器,
使用Docker部署服务,可以高效利用服务器资源(指定服务占用资源),保证服务稳定(如开机自启、自动重启等)。
以上,即完成后台服务的开发、测试和部署。
开发过程中,不可避免地要与操作系统打交道,
后台服务,我学习过程中,服务部署在Linux系统中,
因此,对于Linux的学习必不可少,
包括基础的文件操作、shell脚本等,
这为后来的模型训练、部署等打下了基础。
上面都是准备工作,为后续的人工智能学习和实践打基础。
同样,人工智能领域的框架也是众多,如Tensorflow、Caffe、PyTorch、MXNet等。
这里,选择Tensorflow深度学习框架。
为什么选择Tensorflow?
(1)工具种类齐全;
(2)简单易用;
(3)兼容性好、体验效果好;
(4)全生命周期;
(5)易于维护。
当然,论文阅读也是必不可少的,无需多讲。
上面就是我的技术成长印记。
3 成果
在人工智能领域,通过坚持学习,出版了《基于TensorFlow2.0的人工智能开发应用》一书。
技术成长心得:
- 坚持
- 理论结合实际