首页 > 编程知识 正文

小程序框架对比,前端框架对比

时间:2023-05-03 20:49:06 阅读:187648 作者:1315

1. 数据结构

tensorflow:tensor—相当于N维的array或者list,维数可变,数据类型一旦定义不能改变
caffe:Blob—存储的数据可以看成N维的c数组,有(n,k,h,w)四个维数,一个blob里面有两块数据空间保存前向和后向求导数据

2. 开发语言

tensorflow: c++ / cuda / python
caffe: c++ / cuda

3. 支持接口

tensorflow: c++ / python
caffe: c++ / python / matlab

4. 支持模型

tensorflow: CNN / RNN / 等 通用机器学习模型
caffe: CNN

5. 上手难易

tensorflow: 中上等
caffe: 中等

6. 安装难度

tensorflow: 容易
caffe: 中等

7. 社区(改bug)

tensorflow: 完备,改bug容易
caffe: 非常完备,能找到各种bug出错原因和解决办法,改bug非常容易

8. 网络构建

tensorflow: 符号计算方式,它的程序分为计算构造阶段和执行阶段,构造阶段是构造出computation graph(和数据流程图类似),执行阶段启动session的run来执行已经定义好的graph
caffe: 功能(过程)计算方式,它首先按照每一个大功能(可视化、损失函数、非线性激励、数据层)将功能分类并针对部分功能实现相应的父类,再将具体的功能实现成子类,或者直接继承Layer类,从而形成了XXXLayer的形式,最后将不同的layer组合起来就成了net

9. 分布式训练

tensorflow: 不支持多机分布训练,支持多gpu,数据并行训练。通过调用 with tf.device(‘/gpu:2’) 表示接下来的操作要在gpu2上处理
caffe: 不支持多机分布训练,支持多gpu,数据并行训练。通过直接在执行指令后面加上 -gpu 0,1 来表示调用两个gpu0和1。
如何将卷积网络放在多gpu上训练:

数据并行模型并行。模型并行指的是将一个完整的网络切分成不同块放在不同gpu上执行,每个gpu可能只处理某一张图的四分之一。模型并行的因为是显存不够,放不下整个网络的数据,而现在gpu的功能性能提高,一个gpu已经能够很好的解决显存不够的问题,再加上模型并行会有额外的通信开销,因此开源框架采用了数据并行,用来提高并行度 10. 反向传播

tensorflow: 支持自动求导,反向传播无需自定义求解梯度
caffe: 需要用户自己写 C++或者 CUDA
网络每层Layer 定义两种运算

[1 ] 正向(forward)的运算,从输入数据计算输出结果,也就是模型的预测过程[ 2 ] 反向(backward)的运算,从输出端的 gradient 求解相对于输入的 gradient 11. 定位

tensorflow: google痴情的铃铛写的,可用于语音识别或图像识别等多领域深度学习
caffe: 伯克利大学博士贾扬清写的,主要用于计算机视觉领域,在深度学习框架里开发较早

总体评价

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。