本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记,视频由网易云课堂与 deeplearning.ai 联合出品,主讲人是吴恩达 Andrew Ng 教授。感兴趣的网友可以观看网易云课堂的视频进行深入学习,视频的链接如下:
也欢迎对神经网络与深度学习感兴趣的网友一起交流 ~
目录
对于大型神经网络,例如卷积神经网络、循环神经网络等,从零开始实现并不现实。幸运的是,现在有许多成熟的深度学习框架(Deep learning framework),可以帮助实现这些模型。
- Caffe/Caffe2
- CNTK
- DL4J
- Keras
- Lasagne
- mxnet
- PaddlePaddle
- TemsorFlow
- Theano
- Torch
深度学习框架选择的一个重要标准是便于编程,这包括神经网络的开发和迭代;另一个重要的标准运行速度,在训练大数据集时,一些框架能让你更高效地运行和训练神经网络;第三个标准是深度学习框架是否开源,以及是否继续管理与维护。
1 TensorFlow
TensorFlow 是谷歌公司开发的开源深度学习框架,与 2015 年首次发布,它的名字来自其工作原理——张量(tensor)与数据流图(flow)的计算,TensorFlow 将数据流图(Data Flow Graphs)应用于多维数据的计算。
TensorFlow 具有灵活的架构,可以在不同的平台上展开运算, 同时,TensorFlow 提供 CPU 版本和 GPU 版本,支持最大化系统性能。对于 GPU 版本,TensorFlow 会优先使用 GPU 执行指令。
TensorFlow 的安装与使用说明可以在 TensorFlow 官网 上查询。
2 Caffe
Caffe 是伯克利视觉学习中心开发的深度学习框架,具有模块化、表达力强、运算速度快的特点。Caffe 已被广泛应用于计算机视觉、语音识别、自然语言处理等领域。
Caffe 的核心模块有 3 个,分别是 Blobs、Layers 和 Nets。Blobs 用于存储数据,Caffe 通过 Blobs 统一制定了数据内存的接口;Layers 是神经网络的核心,用于定义层级结构,Blobs 是 Layers 的输入或输出;Nets 是一系列 Layers 的集合,Layers 通过连接形成 Nets。
3 PyTorch
PyTorch 是 Torch 的 Python 版本,是 Facebook 公司开发的开源神经网络框架。PyTorch 使用 Numpy 的方法来表示多维数据,可以利用 GPU 加速训练。
与 TensorFlow 的静态计算图不同,PyTorch 的计算图是动态的,可以根据计算需要实时改变计算图。熟悉 Numpy 的开发者可以很快上手 PyTorch 神经网络的搭建,同时 PyTorch 中的数组对象和 Numpy 中的数组对象也可以无缝对接。
4 PaddlePaddle
PaddlePaddle 的前身是百度 2013 年研发的深度学习平台,自 2016 年起正式向专业社区开放。PaddlePaddle 是一个开放平台,支持 CPU 与 GPU 的计算,在百度的主要产品和服务中发挥不可或缺的作用,例如图像识别分类、机器翻译、自动驾驶等领域。
PaddlePaddle 将词表示成 One-hot Vector,从而能够进行词与词之间的计算,在文本情感分析、用户个性化信息推荐等场景具有优势。