Tensorflow & Caffe 对比

来源:互联网 发布:swift 源码 编辑:程序博客网 时间:2024/05/22 17:05

 初学TF,参考了师兄的blog:http://blog.csdn.net/cham_3/article/details/71374444

   TensorFlow的关键词主要有:

  • 计算图
  • 自动求导
  • 并行计算 
    • 数据并行
    • 模型并行
    • 流水线并行 
   训练一个网络,需要思考或者准备的事情,包括:

(1)数据

   a.数据预处理,数据增强等
   Caffe做数据增强,在数据层指定crop,shuffle,mirror等几个参数就可以。
   TF,可以通过tf.random_ crop(),tf.image.random_flip_left_right()等对图像进行增强
         b.数据输入格式?
            Caffe,提供Data,ImageData等几种数据数据格式,数据来源可以来自高效的数据库(LevelDB 和LMDB),也可以来自内存,或者磁盘的hdf5   
            TF的数据输入格式,主要就是三种,Feeding,从文件读取,预加载的数据
   可以参考官方的文档。下次针对这个写一篇
   https://www.tensorflow.org/programmers_guide/reading_data

(2)模型

   如何定义一个合适的网络结构
   Caffe在prototxt文件中写网络结构,通过type参数,指定不同的网络层。层之间的数据流动是以Blobs的方式进行。
   TF除了可以调用tf.nn.**的网络层,也有tf.contrib.layers.**

(3)损失

            Caffe的损失,写好的包括contrative loss,hingle loss,softmax loss等几种。若要增加新的损失函数,需要自己写好损失函数的梯度求导相关后向传播。
   TF 可以自定义损失相关的计算操作,加入图,在喂数据之后,运行图,TF可以根据定义好的图节点(运算操作)进行自动梯度求导,完成损失函数对网络的训练。

原创粉丝点击