深度学习框架(TensorFlow、keras、PyTorch)

1.TensorFlow(参见中文文档)

TensorFlow其命名基于工作原理,tensor 意为张量(即多维数组),flow 意为流动。即多维数组从数据流图一端流动到另一端。TensorFlow 让我们可以先绘制计算结构图, 也可以称是一系列可人机交互的计算操作, 然后把编辑好的Python文件 转换成 更高效的C++, 并在后端进行计算.

tensorflow和theano都可以使用GPU进行硬件加速,往往可以比CPU运算快很多倍。因此显卡支持cuda的话,建议尽可能利用cuda加速模型训练。

(1)数据流图(Data Flow Graph)

数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。

(2)TensorBoard(可视化工具)

为了更方便 TensorFlow 程序的理解、调试与优化,可以用 TensorBoard 来展现你的 TensorFlow 图像,绘制图像生成的定量指标图以及附加数据。

2.keras(具体使用参考keras中文文档

Keras 是一个兼容 Theano 和 Tensorflow 的神经网络高级包, 用他来组件一个神经网络更加快速.

遵循 处理数据集——建立顺序模型——add layer——compile(指定loss和优化器)——fit(train集)——evaluate(test集)

(1)dataset

keras内部收入了常用的一些数据集(电影评论IMDB、路透社新闻reuters、MNIST 手写字符数据集),直接import即可

譬如from keras.datasets import imdb

(2)顺序模型

顺序模型是多个网络层的线性堆叠。

(3)embedding层

如果要导入自己预训练好的word embedding,可以参照此篇博客

(4)使用TensorBoard

最简单的方式就是直接调用 tensorBoardCallback = TensorBoard(log_dir='./logs', write_graph=True)

其他方式可参考

3.Pytorch(中文文档

Torch 自称为神经网络界的 Numpy, 因为他能将 torch 产生的 tensor 放在 GPU 中加速运算 (前提是你有合适的 GPU), 就像 Numpy 会把 array 放在 CPU 中加速运算,开发团队将 Lua 的 Torch 移植到了更流行的语言 Python 上,所以PyTorch 说他就是在神经网络领域可以用来替换 numpy 的模块。 

PyTorch 最大优点就是建立的神经网络是动态的, 对比静态的 Tensorflow, 他能更有效地处理一些问题, 比如说 RNN 变化时间长度的输出。PyTorch还有自动求导机制。

猜你喜欢

转载自blog.csdn.net/zhiman_zhong/article/details/88249939