个人实践代码如下: #!/usr/bin/env sh # Compute the mean image from the imagenet training lmdb # N.B. this is available in data/ilsvrc12 EXAMPLE=/home/wp/CAFFE/caffe-master/myself/00b DATA=/home/wp/CAFFE/caffe-master/myself/00b TOOLS=build/tools $TOOLS/compute…
#!/usr/bin/env sh DATA=/home/wp/CAFFE/caffe-master/myself/00b MY=/home/wp/CAFFE/caffe-master/myself/00b echo "Creating train.txt..." rm -rf $MY/train.txt find $DATA/train/banana -name *.jpg| cut -d/ -f9- | sed "s/$/ 0/">>$MY/trai…
caffe添加python数据层(ImageData) 在caffe中添加自定义层时,必须要实现这四个函数,在C++中是(LayerSetUp,Reshape,Forward_cpu,Backward_cpu),在python 中是(setup,reshape,forward_cpu,backword_cpu). prototxt layer { name: "data" type: "Python" top: "data" top: "…
一,train.sh #!/usr/bin/env sh ./build/tools/caffe train --solver=myself/00b/solver.prototxt # cd CAFFE/caffe-master # sh ./myself/00b/train_00b.sh 二,test.sh #!/usr/bin/env sh ./build/tools/caffe test --model=myself/00b/train_val.prototxt --weights=mys…
caffe的数据层layer中再载入数据时,会先要对数据进行预处理.一般处理的方式有两种: 1. 使用均值处理 transform_param { mirror: true crop_size: mean_file: "/media/mn_mean.binaryproto" } data_param { source: "/medi/mn_train_db" batch_size: backend: LMDB } 2.采用将数据乘以 1/255 使其值在0-1之间.…
近期在用caffe玩一些数据集,这些数据集是从淘宝爬下来的图片.主要是想研究一下对女性衣服的分类. 以下是一些详细的操作流程,这里总结一下. 1 爬取数据.写爬虫从淘宝爬取自己须要的数据. 2 数据预处理.将图片从jpg,png格式转为leveldb格式.由于caffe的输入层datalayer是从leveldb读取的.这一步自己基于caffe写了个工具实现转换. 转换命令样例: ./convert_imagedata.bin /home/linger/imdata/skirt_train/ /…
caffe中大多数层用C++写成. 但是对于自己数据的输入要写对应的输入层,比如你要去图像中的一部分,不能用LMDB,或者你的label 需要特殊的标记. 这时候就需要用python 写一个输入层. 如在fcn 的voc_layers.py 中 有两个类: VOCSegDataLayer SBDDSegDataLayer 分别包含:setup,reshape,forward, backward, load_image, load_label. 不需要backward 没有参数更新. import…
一直在研究怎样用caffe做行人检測问题.然而參考那些经典结构比方faster-rcnn等,都是自己定义的caffe层来完毕的检測任务. 这些都要求对caffe框架有一定程度的了解.近期看到了怎样用caffe完毕回归的任务,就想把检測问题当成回归问题来解决. 我们把行人检測问题当成回归来看待,就须要限制检出目标的个数,由于我们的输出个数是固定的.所以,这里我假定每张图片最多检出的目标个数为2.即每一个目标用4个值来表示其位置信息(中心位置坐标x,y. BBox的宽和高).则网络的最后输出是8个值…
画loss曲线需要用到此shell脚本 #!/bin/bash # Usage parse_log.sh caffe.log # It creates the following two text files, each containing a table: # caffe.log.test (columns: '#Iters Seconds TestAccuracy TestLoss') # caffe.log.train (columns: '#Iters Seconds Training…
caffe.cpp中的train函数内声明了一个类型为Solver类的智能指针solver: // Train / Finetune a model. int train() { -- shared_ptr<caffe::Solver<float> > solver(caffe::SolverRegistry<float>::CreateSolver(solver_param)); -- } 之后调用Solver类的构造函数,在构造函数内执行了 Init(param)函…