Tensorflow为一种机器学习库。
优点:
1.可自行设计神经网络结构;
2.不需要通过反向传播求解梯度,Tensorflow支持自动求导;
3.通过C++编写核心代码,简化了线上部署的复杂度(通过SWIG实现Python,Go和JAVA接口);
4.Tensorflow中内置TF.Learn和TF.Slim等组件,并兼容Sciket-learn estimator接口(evaluate、grid、search、cross、validation);
5.数据流式图支持自由的算法表达,可实现深度学习以外的机器学习算法;
6.可写内层循环代码控制计算图分支的计算,可将相关的分支转化为子图并执行迭代计算;
7.可进行并行设计,充分利用硬件资源。
8.具有灵活的移植性,编译速度较快;
在数据并行模式上:Tensorflow主要面向内存足以装载模型参数环境,从而实现计算效率的最大化;
支持卷积神经网络(Convolutional Neural Network ,CNN),循环神经网络(Recurent Neural Network,RNN),支持深度强化学习及计算密集的科学计算(偏微分方程求解);
在加入XLA后可以支持JIT和AOT,通过Bucketing trick可以比较高效的实现循环神经网络;目前只可计算静态图;
通过Tendorflow Serving组件可以将Tensorflow 训练好的模型导出;并部署成可以对外提高预测服务的RESTful接口;从而实现了从研究到生成整条流水线的框架:
训练模型——>调试参数——>打包模型——>部署服务;”Tendorflow Serving组件是一个为生产环境而设计的高性能的机器学习服务系统。可以同时运行多个大规模深度学习模型,支持模型生命周期管理,算法实验,并可高效地利用GPU资源。“——内部开发员
TensorBoard是tensorflow的一组Web应用:可监控Tensorflow运行过程(可视化Compution Graph);目前支持5种可视化:
1.标量(scalars),2.图片(images),3.音频(audio),4.直方图(histograms),5.计算图(Computation Graph)
其中Events Dashbo可以持续地监控运行时的关键指标:
1.loss,2.学习速率(learning rate),3.准确率(accuracy) ;
Image Dashboard则可以展示训练过程中用户设定保存的图片;
Graph Explorer则可以完全展示Tensorflow的计算图;