目录
一、Tensorflow框架
二、Tensorflow常用函数
三、与Pytorch对比
四、其他框架
一、Tensorflow框架
1、Tensorflow V1.0框架:
将一系列的计算流程抽象为一张数据流图,包含节点和边两个基础元素;
“会话”将前台与后台连接起来,Session包含三个参数:
(1)target:指定连接的执行引擎。
(2)graph:指定要在 Session 对象中参与计算的图。
(3)config:辅助配置 Session 对象所需要的参数。
session创建之后,需要触发run()方法来启动数据流图进行运算。
2、V 1.0的弊端:
- TensorFlow1.0里在创建了Tensor之后,不能直接返回结果。 而是需要创建session会话机制,包含graph的概念在里面,而且需要session.run 才能运行。这种风格更像是一种硬件编程语言VHDL。
- 与PyTorch等一些简单的框架相比,徒增了很多概念,使用起来会很困扰。
- 调试困难,API混乱,入门困难。入了门使用起来依旧困难,导致很多人转向PyTorch;
3、Tensorflow V2.0 TF+Keras
最大的特性: 去掉了graph 和session机制。变的像Python,PyTorch一样所见即所得。
• 主要改进点:
• Session.run:图和会话机制;
• Tf.control_dependencies:实时控制的概念;
• Tf.global_variables_initializer;
• Tf.cond:分支控制的概念原本可以通过python中if,else等语句来完成;
• Tf.while_loop
二、Tensorflow常用函数
详见Tensorflow常用函数汇总_gangeqian2的博客-CSDN博客_tensorflow函数手册
tensorflow笔记 :常用函数说明_Multiangle's Notepad-CSDN博客_tensorflow常用函数介绍
三、与Pytorch对比
1、Tensorflow的计算图是以静态方式定义的,与外部世界的所有通信都是通过 tf.Sessionobject 和 tf.Placeholder 执行,它们是在运行时会被外部数据替换的张量;
Torch的计算图是动态构建的,图会随着执行过程而改变和执行节点,没有特殊的会话接口或占位符;
计算图的核心优势是能实现并行化或依赖驱动式调度,能让训练速度更快,更有效率;
2、TF的可视化库TensorBoard功能更强,更便于调试;PyTorch的可视化库Visdom则功能简单有限;
3、使用TFserving更容易实现生产部署;而PyTorch生产部署需要API服务器;
四、其他框架
1、Caffe
第一个面向深度学习的框架,用于特征抽取的卷积框架,但不支持自动求导;
详见 一文了解caffe框架_神技圈子的博客-CSDN博客_caffe框架
2、Keras
是基于Theano的一个深度学习框架,封装了很多高层的神经网络模块(如全连接层Dense、卷积层Conv2D、长短时记忆模型LSTM),设计和Torch很类似,但只提供API接口。
详见 keras实战:强大的深度学习框架Keras - 知乎
3、PaddlePaddle
采用分层设计,同时存在静态图和动态图;
详见 PaddlePaddle 核心架构深入解读_JKX_geek的博客-CSDN博客_paddlepaddle框架
4、Xgboost
是一种经典的集成式提升算法框架,将多个基础模型集成在一起,形成一个很强的模型。其中,基础模型可以是分类与胡贵决策树CART或线性模型。
详见 数据分析利器:XGBoost算法最佳解析 - 云+社区 - 腾讯云
5、LightGBM
由微软开发的一套基于决策树的快速、分布式、高性能的gradient boosting框架,支持 以下应用:
-
回归,目标函数是L2损失
-
二值分类,目标函数是logloss
-
多值分类
-
cross-entropy, 目标函数是logloss
-
lambdarank
优势在于:
-
更快的训练速度与高效率;
-
更低的内存使用量;
-
更高的准确率;
-
支持并行和GPU学习;
-
处理超大规模数据的能力。
参考:
【1】TensorFlow介绍--TensorFlow框架介绍_TKE_kolento.的博客-CSDN博客_tensorflow框架介绍
【2】TensorFlow与PyTorch之争,哪个框架最适合深度学习 - 知乎
【3】LightGBM: gradient boosting算法轻量级框架介绍_wong2016的博客-CSDN博客



