1.深度学习框架普及
如今,随着深度学习技术的发展,学术界和工业界流行的深度学习框架很多,下面就给大家普及一下目前在学术和工业界较为流行的几个深度学习框架,有助于大家今后对于深度学习进一步的学习。
1.1 TensorFlow
谷歌的TensorFlow是当今很受欢迎的机器学习框架,无论在学术界还是工业界都有一席之地。它可用于各类机器学习相关的任务中。Tensor即张量,也可以理解为多维度的向量,Flow即流,代表基于数据流图的计算。这是深度学习领域最为基础,也是最需要去掌握的框架。它支持Python、JavaScript、C ++、Java、Go和R等多种编程语言,同时还可以在iOS和Android等移动平台上运行。由于TensorFlow使用静态计算图进行操作,即Flow流的含义。所以,在使用该框架进行模型构建时,我们需要先定义图形,即模型图,然后再运行计算,如果需要对架构进行更改,则需要重新训练模型。这样的方法是为了提高训练效率,但是不能动态地去修改模型,必须等所有模型训练结束后再进行模型调整。关于TensorFlow框架的学习,这里我建议大家可以去MOOC网上进行系统的学习,并且全课程免费,非常适合新手学习:https://www.icourse163.org/course/youdao-1460578162
1.2 Keras
在今后的TensorFlow的学习中,少不了使用Keras的地方。Keras也是一个对小白用户非常友好的深度学习框架。如果想快速入门深度学习,Keras框架也是个不错的选择。Keras是TensorFlow高级集成API,可以非常方便地和TensorFlow进行融合。目前,2.0版本的TensorFlow框架插件库已经配备了Keras,因此可以在TensorFlow中很方便地使用Keras框架。使用Keras可以快速搭建深度学习模型,是学术研究高效进行的关键。因为Keras是高度模块化,搭建网络非常简洁,同时API简单,易扩展,易于添加新模块。
2.Python必备知识
IT界流行一句话,即“人生苦短,我用Python”。所以不学点Python,在深度学习领域真的很难发展下去。不论是今后软件开发还是算法设计,Python都是一把利器,也是在学术研究和求职中必备的一个开发语言。因此大家在学习TensorFlow之前,最好能有一些Python基础知识,这样学起来也容易掌握。这里提供一些必备的Python基础知识。
(1)Python语言基本语法:程序的基本语法(程序的格式框架,缩进、注释、变量、命名、保留字、数据类型、赋值、语句、引用)、基本输入输出函数(input() 、eval() 、print())。
(2)基本数据类置:数字类型(整数类型、浮点数类型和复数类型)、数字类型的运算(数值运算操作符、数值运算函数)、字符串类型及格式化(索引、切片,基本的format()格式化方法)、字符串类型的操作(字符串操作符、处理函数和处理方法)、类型判断和类型间转换
(3)程序的控制结构:控制结构(顺序、选择、循环)、程序的异常处理
(4)函数和代码复用:函数的定义和使用、函数的参数传递、变量(局部变量和全局变量)
(5)组合数据类型:列表类型(定义、索引、切片)和操作、字典类型和操作
(6)文件和数据格式化:文件的使用、数据的处理(表示、存储和处理)
3.框架部署环境选择
有了以上的基础知识,机器学习框架的部署以及资源也尤为重要,目前主要使用的环境部署是Anaconda,通过下载好Anaconda,然后在Anaconda中进行资源选择和环境部署,特别是CUDA的版本一定要和TensorFlow匹配。不然最后模型训练会报错。同时对于GPU和CPU的选择也要确认好,建议GPU和CPU分别部署一个环境,这样到时候训练图片类的数据集时,就切换成GPU版本,其他的训练就切换成CPU版本,比较方便也不容易出错。具体的部署操作网上有很多教程,在这里就不赘述了。至于代码编辑器的使用,目前工业界普遍使用Pycharm,学术界普遍使用jupyter,各有各的优势所在,大家可以都体验一遍,然后选择适合自己的脚本编辑器即可。
开发环境准备操作,推荐新手可以参考MOOC课程,免费注册学习:
4.个人推荐的部署资源环境
对于电脑设施比较优越或者训练一些少量数据集的模型的同学,在自己电脑上部署环境训练模型是可行的,而且训练速度也较快。但是对于大量数据集的复杂模型,有时候就不得不运用到一些线上的机器资源了,而模型训练的机器资源也尤为紧缺,基本市面上大多数都是需要收费才能使用。在这里,为了大家以后能更好的进行模型训练,我提供一个线上机器资源来供大家使用,并且是免费的。这个资源平台就是九天毕昇平台,算是目前最为良心的算力平台,大家可以自行搜索进入官网注册然后使用即可。至于进行模型训练和部署的具体操作,后续我会详细地介绍给大家。除此之外,TensorFlow官方也提供了免费的资源环境供用户使用,详情参考:
https://www.icourse163.org/course/youdao-1467217161,想快速了解模型部署,也可以去看看谷歌开发者专家这周做的一个线上讲解和答疑:
https://zhibo.51cto.com/liveDetail/373
5.机器学习路径与建议
使用框架时为了更好地实现或者运用机器学习知识,因此,最终的目的还是需要去掌握机器学习知识,利用这些知识去解决现实中的一些问题。要具备机器学习的思想,即现实中的任何事物在机器学习领域都可以用数据去表示,然后通过构建模型去认识、学习或者识别这些数据,从而找到数据之间的规律和特征,做到让模型真正像人一样去理解事物,从而使该模型具备处理该类事物的能力,运用在今后类似的事物或事件中。
因此,这里就涉及到了几个问题:如何对事物进行数据化或者特征化、如何构建模型、如何输入模型、如何训练模型、如何调整模型参数、如何衡量模型性能以及最后如何用该模型去解决现实中问题等,一个比较系统化的机器学习入门课提供给大家学习了解:
另外对于机器学习基础知识感兴趣的同学,我建议大家最好去阅读下周志华的《机器学习》,俗称西瓜书,这本书详细地说明了机器学习的基础理念,对于里面的数学公式大家可以根据自己的学习情况去选择性掌握。想认真学习里面公式推导过程的同学,该书还配备了辅导工具书《机器学习公式详解》(也叫南瓜书)。这里,我真诚建议大家去看下这两本书,最好能做到熟悉西瓜书、了解南瓜书的程度。这样对于今后的学习会大有裨益。
最后和大家分享一个关于部署的有奖问卷活动,感兴趣的同学可以花5分钟参与,有机会获得限量的TensorFlow帆布包。只要三步就能完成,非常轻松。
1.戳链接填写问卷
https://wj.qq.com/s2/11353529/a72b/
2.戳链接,在【课程评价区】留下有效评价
3.发送两个截图,添加小助手参与抽奖。
期待大家在机器学习的道路上愈发精进!
作者介绍
稀饭,51CTO社区编辑,曾任职某电商人工智能研发中心大数据技术部门,做推荐算法。目前从事自然语言处理方向研究,主要擅长领域有推荐算法、NLP、CV,使用代码语言有Java、Python、Scala。发表ICCC会议论文一篇。