1.Caffe是一种开源软件框架,内部提供了一套基本的编程框架,或者说一个模板框架,用以实现GPU并行架构下的深度卷积神经网络,Deep Learning等算法,我们可以按照框架定义各种各样的卷积神经网络的结构,并且可以再此框架下增加自己的代码,设计新的算法,该框架的一个问题就是,只能够使用卷积网络,所有框架都是再基于卷积神经网路的模型上进行的。
2.而tensorflow能够完成更多的深度学习算法,比如RNN,LSTM等。
3.caffe具有三个基本原子结构,顾名思义,原子结构就是说不能随意更改,caffe的编程框架就是在这三个原子下实现,它们分别是:Blobs, Layers, and Nets。
Blob就是一个包装器,在caffe这个流程中,所有的数据都要被包装成blob格式。然后在caffe的架构下进行编程和处理,这点事我们不能随意更改的,因为caffe本身提供了很多已经设计好的函数和类,我们随意更改数据包转器就等于没法再使用其中的函数,你就没法再Caffe的框架下设计深度神经网络。blob的格式就是(Number,Channel,Height,Width)将数据按照四元组的方式存储,这里由于是处理的图像数据,所以后面三维代表图像的数据格式,Channel代表图像的通道数,如灰度图是1通道,Channel=1,RGB图像是3通道,Channel=3,Height和Width分别是图像的长宽。至于Number则代表Batch,由于内存有限,所以我们进行训练的时候我们只能分批进行,这里还为每个batch设置了一个标识号,后面会看到我们使用随机梯度下降算法(Schocastic gredient descent,SGD)对模型进行训练,其中就是要使用到Batch,blob不仅仅只用来保存深度网路进行前向过程时的数据,还用来保存在后向求梯度过程时的梯度数据。
具体使用方式:
const Dtype* cpu_data() const;
Dtype* mutable_cpu_data();
上面两中格式分别表示数据的固态模式和和自由模式,blob具有CPU的数据保存和GPU的数据保存,同时blob将数据在CPU和GPU之间的交换封装起来了,并进行了同步处理,因此我们不需要理会数据在GPU和CPU之间的交互。
layers是组成网络结构的单位,接受下层的数据作为输入,通过内部的运算输出。Caffe中网络层的使用定义,和一般的深度学习库类似,,都有三个步骤,1:建立层,包括建立连接关系初始化其中一些变量。2:前向计算过程,接受输入数据并计算出输出,3:后向过程,进行反向梯度的计算,并把梯度保存在层结构中。
Nets是由layers组成的,定义了输入输出以及网络各层,就定义了一个net。比如:一个最基本的单隐层网络定义如下:
name: “LogReg”
layers {
name: “mnist”
type: DATA
top: “data”
top: “label”
data_param {
source: “input_leveldb”
batch_size: 64
}
}
layers {
name: “ip”
type: INNER_PRODUCT
bottom: “data”
top: “ip”
inner_product_param {
num_output: 2
}
}
layers {
name: “loss”
type: SOFTMAX_LOSS
bottom: “ip”
bottom: “label”
top: “loss”
}
可以使用Net::Init()对定义的网络进行初始化和检查,初始化包括对一些变量权值初始化,,检查包括对网络的结构的正确性进行检查,因为涉及到网络的上下层连接关系的匹配和耦合连接。

Caffe 框架介绍相关推荐

  1. 人工智能深度学习Caffe框架介绍,优秀的深度学习架构

    在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要的是,它将深度学习的每一个细节都原原本本地展现出来,大大 ...

  2. 深度学习主流框架介绍(PyTorch、TensorFlow、Keras、Caffe、Theano、MXNET)

    深度学习主流框架介绍(PyTorch.TensorFlow.Keras.Caffe.Theano.MXNET) 1.Theano Theano是最早的深度学习框架之一,由 Yoshua Bengio ...

  3. 2019年上半年收集到的人工智能开源框架介绍文章

    2019年上半年收集到的人工智能开源框架介绍文章 TensorFlow基本使用 TensorFlow.js:让你在浏览器中也能玩转机器学习 人工智能学习框架TensorFlow渐近分析 TensorF ...

  4. 【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练

    背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Te ...

  5. caffe框架下目标检测——faster-rcnn实战篇操作

    原有模型 1.下载fasrer-rcnn源代码并安装 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 1) ...

  6. tensorflow框架到caffe框架的模型转换

    本文参考以下系列内容: tensorflow2caffe(1) : caffemodel解析,caffemodel里面到底记录了什么? tensorflow2caffe(2) : 如何在tensorf ...

  7. tensorflow2caffe(3) : 如何将tensorflow框架下训练得到的权重转化为caffe框架下的权重参数

    版权声明:本文为博主原创文章,转载时请附加博文链接. https://blog.csdn.net/jiongnima/article/details/78382972 在前两期专栏tensorflow ...

  8. tensorflow2caffe(1) : 如何将tensorflow框架下训练得到的权重转化为caffe框架下的权重参数

    在前两期专栏tensorflow2caffe(1)和tensorflow2caffe(2)中,笔者向大家介绍了caffemodel文件类型下的参数架构和如何取出tensorflow框架下训练参数.在本 ...

  9. 百度官方文档Plus版,PaddlePaddle深度学习框架介绍

    作者:木羊同学 来源:华章计算机(hzbook_jsj) 现在深度学习框架不但内卷严重,而且头部效应明显.一提起深度学习框架,首先想到的肯定是Google家的TensorFlow,和Facebook家 ...

  10. 国产首款——飞桨PaddlePaddle深度学习框架介绍

    现在深度学习框架不但内卷严重,而且头部效应明显.一提起深度学习框架,首先想到的肯定是Google家的TensorFlow,和Facebook家的PyTorch.究竟排名谁先谁后,还要看你是工业界还是学 ...

最新文章

  1. huber loss
  2. Android实现号码归属地查询
  3. Python 字符编码 b
  4. 企业邮箱domino跟exchange
  5. 【同124】LeetCode 687. Longest Univalue Path
  6. Delphi的RzDbgrid改变某行的背景色
  7. 【沫沫金】Sql子查询Not In 无结果原因
  8. android网易云桌面歌词,网易云怎么设置桌面歌词?
  9. 西威变频器avo下载调试资料_西门子变频器使用BOP-2 面板调试 G120
  10. Matlab图像练习程序:imrotate功能实现
  11. AD 20 PCB 导入CAD图形错乱-问题笔记
  12. CAJ阅读器相关问题
  13. C语言字母区分大写,C语言中不区分大小写英文字母。()
  14. layui表格工具条
  15. python 录音vad_python---webRTC~vad静音检测-学习笔记
  16. 大疆飞行模拟器 下载、安装及使用教程
  17. win10可以上网但显示无网络连接
  18. Linux文件和目录管理(3)
  19. 赵文婧:深入了解 Azure 云平台容器技术服务
  20. 如何在 Mac 上打开“查找”?

热门文章

  1. unlock-music-desktop解锁加密音乐桌面版
  2. linux测试消息队列阻塞,Linux进程间通信:消息队列
  3. oralce 12c集群 ora-01033
  4. python tkinter画布_Python tkinter Canvas画布完全攻略(超级详细)
  5. 80核处理器_【装机帮扶站】第338期:95元的6核心12线程处理器
  6. STM32单片机最小系统
  7. Django作为微信小程序后端实践
  8. 抖音视频评论获取系统,获取抖音评论的系统
  9. 微信小程序自定义tab切换(可滑动)
  10. 输入两个电阻的值a和b,求它们并联和串联的电阻值。求并联电阻公式:a*b/(a+b),求串联的公式为:a+b。