作者:我爱我19930515 | 来源:互联网 | 2023-08-26 17:52
机器学习平台在人工智能的开发过程中扮演者非常重要的作用,所以,这些年来,也出现了很多不同的机器学习平台,侧重传统方法的scipy、sklearn,侧重深度学习的caffe、then
机器学习平台在人工智能的开发过程中扮演者非常重要的作用,所以,这些年来,也出现了很多不同的机器学习平台,侧重传统方法的scipy、sklearn,侧重深度学习的caffe、theno、pytorch、tensorflow、mxnet,还有高度集成的gluon、keras,都在人工智能工作中扮演者重要的角色,今天我就推荐一些这两年表现比较突出的三个机器学习平台的相关学习资源,分别是tensorflow、pytorch、mxnet。
备注:我已经整理了相关文档的pdf和epub版,需要的可以私信。
目录
- 为什么需要机器学习平台?
- 该选择哪个机器学习平台?
- 有哪些优质学习资源?
为什么需要机器学习平台?
我们做计算机视觉或自然语言,懂算法、自己会开发不就行了,为什么还需要学习这些机器学习平台的使用?原因有几个:
- 节省时间
- 精度高
首先说一下节省时间,比如做计算机视觉过程中,我们搭一个YOLO模型,里面涉及矩阵运算、卷积运算、梯度传播、池化、dropout、激活函数、dataloader、优化算法等等,如果把这些模块都自己重新开发一边,必然会耗费很多时间,而这些模块又是相对成熟稳定的,我们大可不必在这上面耗费时间,而应该把时间用在模型的调优、场景的适配等方面,有了机器学习平台,一行命令就能解决我们用C/C++写一上午甚至更长时间的工作。
其次是精度高,有很多算法虽然流程相同,但是不同的人实现的效果却不同,例如Adam、RMSProp等,这些算法计算速度和精度由不同的人实现效果可能会有天差之别,而这些机器学习平台是Google、Facebook、亚马逊这些人工智能顶尖的企业花大力气验证和优化的,所以效率自然不在话下。
该选择哪个机器学习平台?
机器学习平台有很多,tensorflow、pytorch、mxnet、caffe、sklearn、theno、keras,我个人推荐在tensorflow、pytorch、mxnet三个里面进行选择,因为这三个平台有以下几个优点。
- 灵活、方便推理
- 安装配置容易
- 强大的社区支持
那tensorflow、pytorch、mxnet又怎么选择呢?我简单介绍一下这几个机器学习平台的优缺点,大家可以根据自己的判断自行选择。
tensorflow
tensorflow是一个基于计算图和会话的深度学习平台,tensorflow给我的感觉就是一个庞然大物,这几年随着Google不断的调整和往里面加功能,这个平台变得非常大,里面含有keras模块,slim模块,还有eager模式,tensorflow的优点有:
- 基于符号式编程,速度快。
- 功能丰富,既有灵活的搭建,又有keras、slim这些简洁、集成度高的模块。
- 可视化好,有tensorboard这个可视化工具支撑,能够让我们更加清楚搭建的网络架构、数据流向。
- 强大的社区支持,由于tensorflow用户多,所以当遇到问题的时候会相对容易找到解决方案。
当然tensorflow也有缺点,我觉得正是因为太庞大了,所以有很多功能非常混乱,基于计算图和会话搭建会很不方便。
pytorch
pytorch自从诞生之后就迅速的成为了宠儿,因为它的出现解决了很多以往深度学习平台的痛点:
- 命令式编程,实现简单。
- 数据加载API设计的好,使用方便。
- 上手简单,仅凭这一点就已经很吸引人了。
- 自定义扩展。
mxnet
这是一款有亚马逊推出的深度学习平台,最近看《动手学深度学习》时顺便把mxnet学了一遍,mxnet主要有以下几个优点:
- 同时支持符号式编程和命令式编程,既有tensorflow的快速又有pytorch的简单。
- 支持多GPU和多机分布式。
- 有丰富的与训练模型。
有哪些优质学习资源?
上Google搜一下,会发现有很多各式各样的课程和学习资源,可谓是天花乱坠,我一直秉持一个理念“资源不再多,挑选少数有价值的好好学一下比把所有的都学一遍要有效果”,下面我就针对性的推荐一下我认为比较好的几个资源。
tensorflow
首推当然是官方文档,官方的才是最靠谱,最了解内部详情的,官方文档比较简洁,提供了MNIST、卷积神经网络、可视化等常用的场景,而且在卷积神经网络中以cifar-10为例几乎涵盖了tensorflow常用的功能和计算图搭建流程,详细把这份文档看完基本就掌握了tensorflow的使用。
TensorFlow 官方文档中文版 www.tensorfly.cn
我已经整理好官方文档pdf版,需要的可以私信。
如果觉得官方文档不能够让你变成tensorflow熟手,那就试着用tensorflow完成几个机器学习算法的搭建,tensorflow_course是一个github资源,目前已经9.5k个star,受欢迎程度可见一斑,上面有传统算法,例如线性回归、支持向量机,也有深度学习算法,例如卷积神经网络,能够让你在学习机器学习的过程中进一步熟练tensorflow。
osforscience/TensorFlow-Course github.com
这也是一个github项目资源,虽然不如上面这个火热,但是目前也拥有4.1k个star,和上面这个资源有些类似之处,包括传统算法和深度学习算法的实现,可以边学习机器学习知识、边学习深度学习平台。
nfmcclure/tensorflow_cookbook github.com
还有一些tensorflow的系列教程,包括斯坦福的tensorflow教程,我列在下面,需要的可以自行看一下。
chiphuyen/stanford-tensorflow-tutorials github.com
pkmital/tensorflow_tutorials github.com
Hvass-Labs/TensorFlow-Tutorials github.com
上面这三个资源也很不错,只是内容太多,我个人推荐好好看完前面三个资源就差不多了,可以在后期项目中慢慢熟练。
Pytorch
首先推荐的当然还是官方的文档,前面已经说过,官方文档是最了解自己工具的,也知道哪些该用,哪些需要学习,所以官方文档简洁、节省时间。
主页 – PyTorch中文文档 pytorch-cn.readthedocs.io
如果觉得官方文档内容不够,可以看一下这个github资源,目前5.4k个star,这个资源可以称得上是大合集,包括计算机视觉、自然语言处理、教程和示例、优秀文章的实现,非常全面。
bharathgs/Awesome-pytorch-list github.com
mxnet
关于mxnet学习资源我只推荐一个,就是李沐的《动手学深度学习》,原因很简单,原作者出品的,质量必然值得信赖,而且这个课程以深度学习学习为目标,会讲解优化算法、卷积神经网络、自然语言处理等,在实现过程中会使用mxnet和gluon,会涉及到mxnet底层函数的实现,也会涉及到集成函数的使用,在学习过程中不知不觉就上手了。
《动手学深度学习》:面向中文读者、能运行、可讨论 zh.gluon.ai
我已经把官方文档PDF版和epub版放进共享文件夹,需要的可以关注公众号【平凡而诗意】,回复关键字“doc”获取。
更多我的作品
Jackpop:机器学习入门指导
Jackpop:有哪些堪称「神器」,却鲜为人知的APP?
Jackpop:Windows 下有什么用过之后就离不开的冷门软件?
Jackpop:初学 Python 需要安装哪些软件?