caffe
小_小_杨_
Fly without wings!
展开
-
caffe SigmoidCrossEntropyLossLayer 理论代码学习
交叉熵损失函数交叉熵损失函数的简单介绍的链接 下面我们就介绍一下caffe里面实现交叉熵的流程: 首先:下面这个式子就是交叉熵的损失表达式 E=−1n∑n=1n[pnlogp^n+(1−pn)log(1−p^n)]E = -\frac{1}{n}\sum\limits_{n=1}^n \left[p_n\log\hat{p}_n+(1-p_n)\log(1-\hat{p}_n)\right]原创 2016-05-10 10:44:37 · 13772 阅读 · 6 评论 -
faster rcnn python layer学习
学习fast rnn 里面代码的目的是为了熟悉caffe的python接口,以及Python Layer的书写方式。 下面就以fast rcnn里面的RoIDataLayer层入手逐步学习:class RoIDataLayer(caffe.Layer): """Fast R-CNN data layer used for training.""" def _shuffle_roidb原创 2016-08-25 21:27:07 · 2649 阅读 · 0 评论 -
caffe python layer初次使用记录
书写方式举例layer{ name: "Leaky25" type: "Python" bottom: "connect1" top: "Leaky25" python_param{ module: "mylayer"#python的文件名字为mylayer.py layer: "LeakyLayer"#层的名称为LeakyLayer }}层的实现:im原创 2016-08-25 20:52:40 · 3611 阅读 · 0 评论 -
caffe tensorflow 技术储备之protoc buffers
1、给经常使用的标签设置在1-15 As you can see, each field in the message definition has a unique numbered tag. These tags are used to identify your fields in the message binary format, and should not be changed o原创 2016-09-22 11:24:43 · 968 阅读 · 0 评论 -
caffe-yolo 训练
#include <algorithm>#include <cfloat>#include <vector>#include "thrust/device_vector.h"#include "caffe/layer.hpp"#include "caffe/layers/normalize_layer.hpp"#include "caffe/util/math_functions.hpp"n原创 2016-09-02 17:05:02 · 7896 阅读 · 29 评论 -
python fast rcnn 部分代码学习
1、caffe net的加载函数import caffecaffe.set_mode_gpu()caffe.set_device(id)caffe.set_mode_cpu()net = caffe.Net(prototxt, caffemodel, caffe.TEST)2、load bounding box的函数import scipy.io as sio#temp = sio.loa原创 2016-10-04 10:52:42 · 1023 阅读 · 0 评论 -
caffe python接口使用记录
import caffeimport cv2import numpy as npdef load_data(image_path): image = cv2.imread(image_path) image = cv2.resize(image, (448,448)) image = (image-127.5)/127.5 image = image[:,:,[2原创 2016-11-16 20:29:11 · 1262 阅读 · 2 评论 -
face aligned 记录
face aligned github 该博客是转化这个里面的matlab程序为c++程序: 现在只完成到第二个网络,后续再更新。#include "caffe/net.hpp"#include <vector>#include <string>#include <fstream>#include <opencv2/opencv.hpp>void loaddata(boost::shar原创 2016-11-22 09:59:49 · 950 阅读 · 2 评论 -
normalize layer 公式
forward [x1∑x2i−−−−√,x2∑x2i−−−−√,x3∑x2i−−−−√...,xn∑x2i−−−−√][\frac{x_1}{\sqrt{\sum{x_i^2}}},\frac{x_2}{\sqrt{\sum{x_i^2}}},\frac{x_3}{\sqrt{\sum{x_i^2}}}...,\frac{x_n}{\sqrt{\sum{x_i^2}}}] backward原创 2016-12-19 11:23:09 · 1477 阅读 · 0 评论 -
batch slice layer
这个层的作用是将bottom分为k个tops 列如k为3,bottom为n1,n2,n3,n4,n5,n6。 则top1为n1,n4 则top2为n2,n5 则top3为n3,n6 batch_slice_layer.hpp#ifndef CAFFE_BATCH_SLICE_LAYER_HPP_#define CAFFE_BATCH_SLICE_LAYER_HPP_#include "c原创 2016-12-27 18:53:34 · 779 阅读 · 0 评论 -
caffe python net_spec/使用
这个文件主要是实现python接口里面对NetParameter以及个个层Parameter的操作。 python 函数形参里面和*分别表示的是可变参数长度和字典参数。 python 类里面定义getattr_(self,name),可以在类自己当成名字为name成员调用。 dict成员函数get,有两个参数,如果第一个参数在keys里面,返回对应的值,否则返回第二个参数。getattr(la原创 2017-03-01 09:34:40 · 2356 阅读 · 0 评论 -
caffe install in ubuntu 16.04
Forgive me. I have to record the process in this blog in English for I do not install Chinese input method in new ubuntu system yet.1 Install opencvDownload opencv 2.49(recommend) from offical websi原创 2017-03-05 10:23:55 · 711 阅读 · 0 评论 -
caffe hdf5 数据层数据生成
使用的是python里面带的h5py这个库, 使用方式是通过hy.File(filename,mode)读取hdf5或者写入hdf5。 输入存入的方式是通过字典赋值的方式进行的。import h5py as hyimport numpy as npimport cv2width=100height=224fid=open('/home/yang/Desktop/all.txt')li原创 2017-03-28 11:31:28 · 2095 阅读 · 0 评论 -
caffe slice layer 学习
Slice layer 的作用是将bottom按照需要分解成多个tops。(与split layer的不一样在于spliit的作用是将bottom复制多份,输出到tops) 首先我们先看一下slice layer 在prototxt里面的书写layer { name: "slice" type: "Slice" bottom: "input" top: "output1" to原创 2016-09-05 14:26:17 · 19629 阅读 · 3 评论 -
caffe 版本 yolo 过程记录
【注】后续再写可训练版本的yolo caffe版 【caffe训练版本已经更新caffe-yolo训练】 YOLO 框的获取 x = image.cols*(result[idx++]+j)/7;//i表示gride的位置 y = image.rows*(result[idx++]+i)/7;//j表示gride的位置 w = image.cols*result[idx]*result[id原创 2016-08-04 16:55:56 · 19214 阅读 · 20 评论 -
GOTURN(Generic Object Tracking Using Regression Networks ECCV2016)
This tracker is able to track objects at 100 fps. This real-time speed is due to two factors. First, most previous neural network trackers are trained online. However, training neural networks is a s原创 2016-08-18 11:37:15 · 1864 阅读 · 1 评论 -
caffe SyncedMemory 学习
syncedmem.hpp#ifndef CAFFE_SYNCEDMEM_HPP_#define CAFFE_SYNCEDMEM_HPP_#include <cstdlib>#include "caffe/common.hpp"#include "caffe/util/math_functions.hpp"namespace caffe {//分配内存空间的内联函数,大小为size字节原创 2016-05-13 13:40:30 · 959 阅读 · 0 评论 -
caffe SigmoidLayer 学习
SimgoidLayer 的定义neuron_layer.htemplate <typename Dtype>class SigmoidLayer : public NeuronLayer<Dtype> { public: explicit SigmoidLayer(const LayerParameter& param) : NeuronLayer<Dtype>(param)原创 2016-05-04 15:42:13 · 3885 阅读 · 0 评论 -
caffe accuracy 学习
首先我们先看一下accuracy (在caffe.proto里面)的类定义message AccuracyParameter { // When computing accuracy, count as correct by comparing the true label to // the top k scoring classes. By default, only com原创 2016-04-22 15:55:27 · 6935 阅读 · 0 评论 -
caffe BaseDataLayer 学习
template <typename Dtype>class BaseDataLayer : public Layer<Dtype> { public: explicit BaseDataLayer(const LayerParameter& param);//构造函数 virtual void LayerSetUp(const vector<Blob<Dtype>*>& bottom,原创 2016-07-13 10:04:12 · 407 阅读 · 0 评论 -
caffe InternalThread类学习
InternalThreadInternalThread 这个类是使用与DataLayer里面的。InternalThread使用的是boost库的thread(基本的使用方法找一下其他博客)。class InternalThread { public: InternalThread() : thread_() {} virtual ~InternalThread(); /** Retu原创 2016-07-13 10:25:12 · 920 阅读 · 0 评论 -
boost thread学习
Boost thread基础学习1、boost thread介绍 thread库为c++增加了现成处理能力,它提供简明清晰的线程、互斥量等概念,可以很容易地创建多线程程序。thread库也是高度可移植的,它支持最广泛的windows和POSIX线程。 2、使用thread库 thread位于命名空间boost,为了使用thread组建需要包含头文件<boost/thread.hpp> 2.1原创 2016-07-13 11:35:48 · 860 阅读 · 0 评论 -
caffe BasePrefetchingDataLayer 学习
BasePrefetchingDataLayer介绍: 这个层通过继承BaseDataLayer和InternalThread这两个基本类,实现了数据(图片及标签)的获取。template <typename Dtype>class BasePrefetchingDataLayer : public BaseDataLayer<Dtype>, public InternalThread原创 2016-07-13 13:04:08 · 2284 阅读 · 0 评论 -
caffe DB类学习
DB类enum Mode { READ, WRITE, NEW };//数据库操作的模式class Cursor {//这个类实现的是对数据库内数据的读取,这个是一个基础类,根据不同的数据对这个类进行继承 public: Cursor() { } virtual ~Cursor() { } virtual void SeekToFirst() = 0; virtual void原创 2016-07-13 15:17:29 · 1355 阅读 · 2 评论 -
caffe LMDB 库学习
这个程序是根据caffe里面的LMDB实现来编写的: 数据读写共同的步骤:调用mdb_env_create()函数mdb_env_set_mapsize()//读写的不同之处在于这个函数的flag中(想些见下面函数)。mdb_env_open()数据的写过程mdb_txn_begin()mdb_dbi_open()设置 MDB_val mdb_key, mdb_value;这两个值原创 2016-07-13 21:41:37 · 3798 阅读 · 0 评论 -
函数指针
指向函数的指针用指向函数的指针调用函数可以用指针变量指向整数类型,字符类型,数组等,也可以指向函数。一个函数在编译时候被分配一个入口地址。这个函数的入口地址被称为函数的指针。可以用一个指针变量指向函数。 下面提供两种写法: 第一种#include <iostream>using namespace std;int add(int x, int y);int sub(int x, int y原创 2016-07-13 15:49:26 · 411 阅读 · 0 评论 -
SPPLayer
caffe SPP层转化的流程图原创 2016-07-26 10:49:49 · 1379 阅读 · 0 评论 -
SSD MyDetect记录
最近学习了SSD,想自己实现SSD后面检测的过程(虽然SSD已经有提供代码,但是自己练练手)。自己添加的层MyDetect(功能是对于输入进来的prior bounding box, location predict, confidence predict进行处理,输出top[0]维度是1×1×100*6(默认最多识别的框不超过100,后面的6维度是xmin,ymin,xmax,ymax,class原创 2016-08-17 14:34:20 · 4375 阅读 · 11 评论 -
caffe多标签装hdf5接口
#include<string>#include<vector>#include<opencv2/opencv.hpp>#include "H5Cpp.h"#include "hdf5.h"#include "hdf5_hl.h"#include<fstream>#include<stdio.h>#include <fstream> // NOLINT(readability/st原创 2016-08-31 10:44:47 · 2455 阅读 · 12 评论