《深度学习之图像识别:核心技术与案例实战》 ——2.1.2 TensorFlow简介
2.1.2 TensorFlow简介
TensorFlow是Google brain推出的开源机器学习库,与Caffe一样,主要用于深度学习的相关任务。与Caffe相比,TensorFlow的安装简单很多,一个pip命令就可以解决,新手也不会误入各种“坑”。
TensorFlow中的Tensor就是张量,代表N维数组,与Caffe中的blob是类似的。Flow即流,代表基于数据流图的计算。神经网络的运算过程就是数据从一层流动到下一层,TensorFlow更直接地强调了这个过程。
TensorFlow最大的特点是计算图,即先定义好图,然后进行运算,所以所有的TensorFlow代码都包含两部分。第一部分是创建计算图,表示计算的数据流,实际上就是定义好了一些操作,可以将它看作是Caffe中Prototxt的定义过程;第二部分是运行会话,执行图中的运算,可以看作是Caffe中的训练过程,只是TensorFlow的会话比Caffe灵活很多,由于是Python接口,因此取中间结果分析、debug等方便很多。
TensorFlow也有内置的TF.Learn和TF.Slim等上层组件,可以帮助开发者快速地设计新网络,并且兼容Scikit-learn estimator接口,可以方便地实现evaluate、grid search、cross validation等功能。同时TensorFlow不只局限于神经网络,其数据流式图支持非常自由的算法表达,可以轻松实现深度学习以外的机器学习算法。
用户可以写内层循环代码控制计算图分支的计算,TensorFlow会自动将相关的分支转为子图并执行迭代运算。TensorFlow也可以将计算图中的各个节点分配到不同的设备上执行,充分利用硬件资源。
在TensorFlow中定义新的节点时只需要写一个Python函数,如果没有对应的底层运算核,则需要写C++或者CUDA代码来实现运算操作。此外,TensorFlow还支持深度强化学习及其他计算密集的科学计算(如偏微分方程求解等)。
- 点赞
- 收藏
- 关注作者
评论(0)