自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Caffe源码解读(十二):自定义数据输入层

第1,3,4,5步跟上一节的自定义一个神经层的一样。 数据输入层需要重写三个函数:DataLayerSetUp:定义好从prototxt读入的参数名和容器的规格(设好N,K,H,W)ShuffleImages:打乱顺序load_batch:把图片读入到内存代码及解读如下:#ifdef USE_OPENCV#include <opencv2/core/core.hpp>#include <

2017-05-01 22:45:47 4116

原创 远程执行系统命令的服务器与popen的使用

创建一个tcp服务器创建一个tcp服务器,步骤:创建一个socketsocket绑定本地地址和端口socket开始监听无限循环随时准备接收消息 执行accept()等待客户端请求连接,返回一个专门负责与该客户端通信的socket以及该客户端的地址。用新socket接收客户端发送的数据用新socket发送对接收数据的处理结果代码如下:#!/usr/bin pythonfrom sock

2017-04-26 08:06:24 1184

原创 Caffe源码解读(十一):自定义一个layer

步骤: 1. 创建新定义的头文件include/caffe/layers/my_neuron_layer.hpp 重新Layer名的方法:virtual inline const char* type() const { return “MyNeuron”; } 如果只是需要cpu方法的话,可以注释掉forward/backward_gpu()这两个方法 2. 创建对应src/caffe/

2017-04-25 23:51:20 620

原创 Caffe源码解读(十):Caffe五种层的实现和参数配置

以mnist数据集的lenet_train_test.prototxt网络为例介绍卷积层 输入为28*28的图像,经过5*5的卷积之后,得到一个(28-5+1)*(28-5+1) = 24*24的map。 map:就是一张图像经过一个卷积核之后的图像layer { name: "conv2" type: "Convolution" bottom: "pool1" top: "co

2017-04-21 01:25:23 680

原创 Caffe源码解读(九):Caffe可视化工具

从网络结构可视化、caffemodel的可视化、特征图可视化、可视化loss和accurary曲线等四个方面讲可视化网络结构可视化有两种办法:draw_net.py工具和在线可视化工具,推荐后者,灵活简便。1、使用draw_net.py工具需要安装numpy、gfortran、graphviz、pydot等工具之后,才能执行draw_net.py。sudo apt-get updatesudo a

2017-04-20 01:43:28 5682

原创 Caffe源码解读(八):使用训练好的模型

在介绍如何使用caffemodel之前,先介绍下均值文件。大型数据库都会要求减去均值文件后再进行训练和测试,会提高速度和精度。caffe提供了专门的工具生成均值文件:compute_image_mean [train_lmdb] [mean.binaryproto]然后在DataLayer层的预处理中指定该均值文件:transform_param { scale: 0.00390625

2017-04-20 00:37:54 1769

原创 Caffe源码解读(七):将图片数据转化为LMDB数据

caffe编译完成后在build/tools/目录下会生成一个convert_imageset工具,用来把图像数据转化成lmdb或者leveldb数据convert_imageset的使用方法第一步:创建图片文件列表清单列表清单一般为一个txt文件,一行一张图片第二步:执行convert_imagesetconvert_imageset [FLAGS] [ROOTFOLDER/] [LISTFILE

2017-04-19 02:30:13 884

原创 Caffe源码解读(六): Caffe的I/O模块

I/O模块介绍在caffe中,I/O模块就是数据层,数据层能够读取磁盘数据,如DataLayer层。数据能过数据层进入 caffe 网络:数据层处于网络的最底层, 数据可以从高效率的数据库中读取(如 LevelDB 或 LMDB), 可以直接从内存中读取, 若对读写效率要求不高也可以从硬盘上的 HDFT 文件或者普通的图片文件读取。DataLayer层的参数配置如下是DataLayer层的参数配置,

2017-04-19 02:27:14 474

原创 Caffe源码解读(五):Caffe最优求解器Solver

Solver 通过协调 Net 的前向推断计算和反向梯度计算(forward inference and backward gradients),来对参数进行更新,从而达到减小 loss 的目的。Caffe 模型的学习被分为两个部分:由 Solver 进行优化、更新参数,由 Net 计算出 loss 和 gradient。Solver介绍solver的作用是:每一次迭代之后,怎样去更新权值,使得所有

2017-04-19 01:36:34 698

原创 Caffe源码解读(四):proto文件的编写与使用

protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据

2017-04-18 01:48:15 1242

原创 Caffe源码解读(三):Layer类的源码解读

Layer是Caffe模型的本质内容和执行计算基单元。作用Layer可以进行很多运算,如convolve(卷积)、pooling(池化)、inner product(内积),rectified-linear和sigmoid等非线性运算,元素级的数据转换,normalize(归一化)、softmax和hinge等losses(损失计算)。Layer工作原理 一个 layer 通过 botto

2017-04-16 23:42:17 729

原创 Caffe源码解读(二):Blob类的源码解读

Blob类定义在Include/Caffe/Blob.h中定义,而成员函数的实现在Src/Caffe/Blob.cpp中。作用Caffe 使用 blobs 结构来存储、交换和处理网络中正向和反向迭代时的数据和导数信息: blob 是 Caffe 的标准数组结构,它提供了一个统一的内存接口。blobs还具备在 CPU 与 GPU 之间具有同步处理能力。Blob实现原理blob本质上是一个连续存储的N维

2017-04-16 01:14:56 815

原创 Caffe源码解读(一):代码组织结构

Caffe源码解读(一):代码组织结构

2017-04-15 17:48:00 792

原创 欢迎使用CSDN-markdown编辑器

从决策树学习到贝叶斯分类算法、EM、HMM引言最近在面试中,除了基础 & 算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全不代表你将来的面试中会遇到此类问题,只是因为我的简历上写了句:熟悉常见的聚类 & 分类算法而已),而我向来恨对一个东西只知其皮毛而不得深入,故写一个有关数据挖掘十大算法的系列文章以作为自己备试之用,甚至以备将来常常回顾思考。行文杂乱

2017-01-17 23:55:33 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除