Caffe 笔记 (一)caffe的层与数据结构
Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换:
Caffe::set_mode(Caffe::GPU);
Caffe的优势
1、上手快:模型与相应优化都是以文本形式而非代码形式给出
Caffe给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。
2、速度快:能够运行最棒的模型与海量的数据。
Caffe与cuDNN结合使用,测试AlexNet模型,在K40上处理每张图片只需要1.17ms.
3、模块化:方便扩展到新的任务和设置上。
可以使用Caffe提供的各层类型来定义自己的模型。
4、开放性:公开的代码和参考模型用于再现。
5、社区好:可以通过BSD-2参与开发与讨论。
Caffe的网络定义
Caffe中的网络都是有向无环图的集合,可以直接定义:
name: "dummy-net"
layers {<span><span>name: <span>"data" …</span></span></span>}
layers {<span><span>name: <span>"conv" …</span></span></span>}
layers {<span><span>name: <span>"pool" …</span></span></span>}
layers {<span><span>name: <span>"loss" …</span></span></span>}
数据及其导数以blobs的形式在层间流动。
Caffe的各层定义
Caffe层的定义由2部分组成:层属性与层参数,例如
name:"conv1"
type:CONVOLUTION
bottom:"data"
top:"conv1"
convolution_param{
num_output:<span>
kernel_size:
stride:
weight_filler{
type: "<span style="color: #c0504d;">xavier</span>"
}
}
这段配置文件的前4行是层属性,定义了层名称、层类型以及层连接结构(输入blob和输出blob);而后半部分是各种层参数。
Blob
Blob是用以存储数据的4维数组,例如
对于数据:Number*Channel*Height*Width
对于卷积权重:Output*Input*Height*Width
对于卷积偏置:Output***
训练网络
网络参数的定义也非常方便,可以随意设置相应参数。
甚至调用GPU运算只需要写一句话:
solver_mode:GPU
参考博客:https://www.csdn.net/article/2015-01-22/2823663
参考博客:https://blog.csdn.net/qq_26898461/article/details/50454804
Caffe 笔记 (一)caffe的层与数据结构的更多相关文章
- caffe笔记
1. 训练 cifar10 示例 ① cd caffe.1.0.0 ./data/cifar10/get_cifar10.sh #获取图片 ② ./examples/cifar10/cre ...
- c++ caffe 输出 activation map 、 层参数
python输出activation map与层参数:https://blog.csdn.net/tina_ttl/article/details/51033660 caffe::Net文档: htt ...
- 【神经网络与深度学习】如何在Caffe中配置每一个层的结构
如何在Caffe中配置每一个层的结构 最近刚在电脑上装好Caffe,由于神经网络中有不同的层结构,不同类型的层又有不同的参数,所有就根据Caffe官网的说明文档做了一个简单的总结. 1. Vision ...
- 图解 TCP/IP 第六章 TCP与UDP 笔记6.1 传输层的作用
图解 TCP/IP 第六章 TCP与UDP 笔记6.1 传输层的作用 传输层必须指出这个具体的程序,为了实现这一功能,使用端口号这样一种识别码.根据端口号,就可以识别在传输层上一层的应用程 ...
- 【撸码caffe 三】 caffe.cpp
caffe.cpp文件完成对网络模型以及模型配置参数的读入和提取,提供了网络模型训练的入口函数train和对模型的测试入口函数test.文件中使用了很多gflags和glog指令,gflags是goo ...
- 【caffe Blob】caffe中与Blob相关的代码注释、使用举例
首先,Blob使用的小例子(通过运行结果即可知道相关功能): #include <vector> #include <caffe/blob.hpp> #include < ...
- 未定义变量 "caffe" 或类 "caffe.reset_all"
配置caffe后在matlab中测试报错. 未定义变量 "caffe" 或类 "caffe.reset_all". 我的原因是:caffe在matlab接口处没 ...
- Intel Caffe 与原生Caffe
1. 首先安装好docker,拉取intel caffe image: $ docker pull bvlc/caffe:intel 试着运行: $ docker run -it bvlc/caff ...
- CNN学习笔记:全连接层
CNN学习笔记:全连接层 全连接层 全连接层在整个网络卷积神经网络中起到“分类器”的作用.如果说卷积层.池化层和激活函数等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的特征表示映射到样 ...
- CNN学习笔记:池化层
CNN学习笔记:池化层 池化 池化(Pooling)是卷积神经网络中另一个重要的概念,它实际上是一种形式的降采样.有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见 ...
随机推荐
- Laradock + tp5 + nginx 配置虚拟机域名始终跳转首页/502报错
laradock默认配置文件如下: 配置运用于本地windows+phpstudy 部署的laravel项目未出现问题,如下: server { listen ; listen [::]:; serv ...
- Python RSA
# -*- coding: utf-8 -*- from Crypto import Random from Crypto.Hash import SHA from Crypto.Cipher imp ...
- mysql 对数据的自增ID重新进行排序
创建表格时添加: create table table1(id int auto_increment primary key,...) 创建表格后添加: 删除原有主键: ALTER TABLE `ta ...
- HTML的表单标签汇总
HTML的表单标签汇总 表单的元素格式: 1. 账号.密码.提交.重置 语法: <p>账号:<input type="text" name="usern ...
- Day1 工厂模式
我的理解就是:工厂模式可以不用在乎参数的类型,工厂函数根据不同的类型,创建不同的对象.如下(简单工厂): package method.simpleFactory; import java.util. ...
- vue -bug1
打包问题: 1.在终端用 npm run build 如果想要在本地资源也能访问 2.npm install -g http-server 3.配置好如下 3.1 config->index. ...
- JQ 获取浏览器窗口宽高
$(window).height(); // 浏览器时下窗口可视区域高度 $(document).height(); //浏览器时下窗口文档的高度 $(document.body).height(); ...
- .net_DevExpress控件使用经验总结
(转)DevExpress控件使用经验总结DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.本文主要介绍我在使用DevExpress控件过程中,遇到或 ...
- 美化git commit历史
为什么要美化commit历史? 答:假如一个分支的多次意义相近的 commit,会把整个提交历史搞得很混乱, 此时可以将几个commit 合并为一个 commit,以美化整个 commit 历史. 怎 ...
- python logging 总结
基本用法: import sys # 获取logger实例,如果参数为空则返回root logger logger = logging.getLogger("AppName" ...