caffe系列之:Blob,Layer and Net以及对应配置文件的编写
来源:互联网 发布:unity3d跟踪导弹 编辑:程序博客网 时间:2024/05/21 17:12
深度网络是一个组合模型,它由许多相互连接的层组合而成的,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blobs,从而进行便利的操作和通讯。Blob是caffe的一种标准的数组,一种统一的内存接口,它详细描述了信息是如何存储的、以及如何在层之间的通讯的。
1、blob
Blobs封装了运行时的数据信息,提供了CPU和GPU的同步。从数学上来说,Blob是一个N维数组。它是caffe的数据操作基本单位。只是矩阵式二维的,而Blob是N维的。N可以是2,3,4等等。对于图片数据来说,Blob可以表示为(N*C*H*W)这样一个4D数组。其中N表示图片的数量,C表示图片的通道数,H和W分别表示图片的高度和宽度。当然,除了图片数据,Blob也可以用于非图片数据,比如传统的多层感知机。
在模型中设定的参数,也是用Blob来表示和运算。它的维度会根据参数的类型不同而不同。比如:在一个卷积层中,属于一张3通道图片,有96个卷积核,每个核大小为11*11,因此这个Blob是96*3*11*11。而在一个全连接层中,假设输入1024通道图片,输出1000个数据,则Blob为1000*1024
2、layer
层是网络模型的组成要素和计算的基本单位。一个层的定义大至如下:
从bottom进行数据的输入,计算后,通过top进行输出。图中的黄色多边表示输入输出的数据,蓝色矩形表示层。
每一种类型的层都定义了三种关键的计算:setup,forward and backword
setup: 层的建立和初始化,以及在整个模型中的连接初始化。
forward:从bottom得到输入数据,进行计算,并将计算结果送到top,进行输出。
backward:从层的输出端top得到数据的梯度,计算当前层的梯度,并将计算结果送到bottom,向前传递。
3、Net
就像搭积木一样,一个net由多个layer组合而成。
第一层:name为mnist,type为Data,没有输入(bottom),只有两个输出(top),一个为data,一个为label
第二层:name为ip,type为InnnerProduct,输入数据data,输出数据ip
第三层:name为loss,type为SoftmaxWithLoss,有两个输入,一个为ip,一个为label,有一个输出loss
name: "LogReg"layer{ name: "mnist" type: "Data" top: "data" top: "label" data_param{ source: "input_leveldb" batch_size: 64 }}layer{ name: "ip" type: "InnerProduct" bottom: "data" top: "ip" inner_product_param{ num_output: 2 } }layer{ name: "loss" type: "SoftmaxWithLoss" bottom: "ip" bottom: "label" top: "loss" }
- caffe系列之:Blob,Layer and Net以及对应配置文件的编写
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- Caffe傻瓜系列(5):Blob,Layer and Net以及对应配置文件的编写
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- Caffe系列(5):Blob,Layer and Net以及对应配置文件的编写
- Caffe傻瓜系列(5):Blob,Layer and Net以及对应配置文件的编写
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- Caffe新手教程傻瓜系列(5):Blob,Layer and Net以及对应配置文件的编写
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- (7)caffe总结之Blob,Layer and Net以及对应配置文件的编写
- Caffe 深度学习入门教程 Blob,Layer and Net以及对应配置文件的编写
- caffe学习笔记6:Blob,layer and net以及对应配置文件的编写
- caffe基础(5):Blob,Layer和Net以及对应配置文件的编写
- String,StringBuffer,StringBuilder三者的区别
- windows下使用的linux模拟环境工具—cygwin
- wagger生成API文档
- 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
- javascript写的简易定时器
- caffe系列之:Blob,Layer and Net以及对应配置文件的编写
- POJ2192:Zipper(记忆化搜索)
- 输出一个整数的每一位
- Python练习_1 水仙花数_2
- k-均值聚类
- Leetcode 141. Linked List Cycle
- 一个程序猿的迷茫
- 2017ACM-ICPC 西安赛区总结
- go:*handler is pointer to interface, not interface