使用caffe训练自己的图像数据(未完)
参考博客:blog.csdn.net/drrlalala/article/details/47274549
1,首先在网上下载图片,猫和狗。
直接保存下载该网页,会生成一个有图片的文件夹。
caffe-master/data 新建 myself
myself/ 新建 train dog
cat
test dog
cat
之后将图片分别复制到文件夹中
2,生成train.txt和test.txt
在train文件夹下运行 find -name *.jpg |cut -d '/' -f2-3 >train.txt
手动加标签 sed -i 's/$/ 0/g' train.txt 在末位加0
val.txt同理可得,也要加标签。
3,图片转化为lmdb格式
caffe-master/examples/ 新建 myself
复制examples/imagenet/create_imagenet.sh到 examples/myself
修改参照下面,主要是针对路径的修改
#!/usr/bin/env sh
# Create the imagenet lmdb inputs
# N.B. set the path to the imagenet train + val data dirs
set -e EXAMPLE=examples/myself ##路径需要自己修改,默认的相对路径是在caffe-master下 DATA=data/myself ##是指生成的train.txt和val.txt的路径
TOOLS=build/tools TRAIN_DATA_ROOT=data/myself/train/ ##注生成的数据最前面就不需要加/了
VAL_DATA_ROOT=data/myself/test/ # Set RESIZE=true to resize the images to 256x256. Leave as false if images have
# already been resized using another tool.
RESIZE=true ##如果填true说明事先没有将其转为256*256格式
if $RESIZE; then
RESIZE_HEIGHT=
RESIZE_WIDTH=
else
RESIZE_HEIGHT=
RESIZE_WIDTH=
fi if [ ! -d "$TRAIN_DATA_ROOT" ]; then
echo "Error: TRAIN_DATA_ROOT is not a path to a directory: $TRAIN_DATA_ROOT"
echo "Set the TRAIN_DATA_ROOT variable in create_imagenet.sh to the path" \
"where the ImageNet training data is stored."
exit
fi if [ ! -d "$VAL_DATA_ROOT" ]; then
echo "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"
echo "Set the VAL_DATA_ROOT variable in create_imagenet.sh to the path" \
"where the ImageNet validation data is stored."
exit
fi echo "Creating train lmdb..." GLOG_logtostderr= $TOOLS/convert_imageset \
--resize_height=$RESIZE_HEIGHT \
--resize_width=$RESIZE_WIDTH \
--shuffle \
$TRAIN_DATA_ROOT \
$DATA/train.txt \ ##之前生成的list
$EXAMPLE/myself_train_lmdb ##修改名字 echo "Creating val lmdb..." GLOG_logtostderr= $TOOLS/convert_imageset \
--resize_height=$RESIZE_HEIGHT \
--resize_width=$RESIZE_WIDTH \
--shuffle \
$VAL_DATA_ROOT \
$DATA/val.txt \
$EXAMPLE/myself_test_lmdb echo "Done."
之后 cd caffe-master
运行 sudo ./examples/myself/create_imagenet.sh
在examples/myself/ 下生成两个lmdb文件夹
4,计算图像均值
复制examples/imagenet/make_imagenet_mean.sh到 examples/myself
使用make_imagenet_mean.sh计算图像均值,在data/myself 下产生imagenet_mean.binaryproto文件
相对路径仍为 caffe-master下,按照自己的文件修改路径。
之后 sudo ./examples/myself/make_imagenet_mean.sh
#!/usr/bin/env sh
# Compute the mean image from the imagenet training lmdb
# N.B. this is available in data/ilsvrc12 EXAMPLE=examples/myself
DATA=data/myself
TOOLS=build/tools $TOOLS/compute_image_mean $EXAMPLE/myself_train_lmdb
$DATA/imagenet_mean.binaryproto echo "Done."
5,定义网络
主要是修改下面三个文件:
my_train.prototxt
my_test.prototxt
solver.prototxt
这三个文件可以从caffe的已有例子中复制过来。接下来需要自己修改,修改的地方主要是,一些文件的路径和输出层的个数(即类别数目)。
6,写训练脚本my_train_lenet.sh 如下:(我这个是根据mnist中的文件改过来的)
#!/usr/bin/env sh
set -e ./build/tools/caffe train --solver=examples/myself/solver.prototxt $@
未完待续。
使用caffe训练自己的图像数据(未完)的更多相关文章
- 实践详细篇-Windows下使用Caffe训练自己的Caffemodel数据集并进行图像分类
三:使用Caffe训练Caffemodel并进行图像分类 上一篇记录的是如何使用别人训练好的MNIST数据做训练测试.上手操作一边后大致了解了配置文件属性.这一篇记录如何使用自己准备的图片素材做图像分 ...
- python+caffe训练自己的图片数据流程
1. 准备自己的图片数据 选用部分的Caltech数据库作为训练和测试样本.Caltech是加州理工学院的图像数据库,包含Caltech101和Caltech256两个数据集.该数据集是由Fei-Fe ...
- 从JSON数据源导入数据(未完)
- 使用caffe训练mnist数据集 - caffe教程实战(一)
个人认为学习一个陌生的框架,最好从例子开始,所以我们也从一个例子开始. 学习本教程之前,你需要首先对卷积神经网络算法原理有些了解,而且安装好了caffe 卷积神经网络原理参考:http://cs231 ...
- CocoStuff—基于Deeplab训练数据的标定工具【一、翻译】(未完)
一.CocoStuff简介 CocoStuff是一款为deeplab设计的,运行在Matlab中的语义标定工具,其标定结果和结合Deeplab训练出的结果均为mat文件格式,该项目源码已在github ...
- caffe简易上手指南(二)—— 训练我们自己的数据
训练我们自己的数据 本篇继续之前的教程,下面我们尝试使用别人定义好的网络,来训练我们自己的网络. 1.准备数据 首先很重要的一点,我们需要准备若干种不同类型的图片进行分类.这里我选择从ImageNet ...
- scipy笔记—scipy.misc.imresize用法(方便训练图像数据)
scipy.misc.imresize 不同于普通的reshape, imresize不是单纯的改变图像矩阵的维度,而是能将图片重采样为指定像素,这样给深度学习中训练图像数据带来方便. import ...
- Caffe Blob针对图像数据在内存中的组织方式
Caffe使用Blob结构在CNN网络中存储.传递数据.对于批量2D图像数据,Blob的维度为 图像数量N × 通道数C × 图像高度H × 图像宽度W 显然,在此种场景下,Blob使用4维坐标定位数 ...
- caffe训练数据流程
cifar10训练实例 1. 下载数据 # sudo sh data/cifar10/get_cifar10.sh 2. 转换数据格式为lmdb # sudo sh examples/cifar10/ ...
随机推荐
- 【剑指offer】斐波那契数列
一.题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.n<=39 二.思路: 式子: n=0时,f=0:n=1或者n=2时f=1:否则f=f(n-1)+f(n ...
- Muse UI 样式
Muse UI的icon是国外网站,被墙了所以用这个网址的icon,在index.html文件中引入下面链接: <link rel="stylesheet" href=&qu ...
- 让人抓狂的MySQL安装-8.0.12版本
今天一个下午就做了一件事,把MySQL安装成功,安装的过程让人很狂躁.于是一边骂,一边查错,才把这个软件给安装成功了. 详细的安装步骤,这里就不赘述了.参见https://blog.csdn.net/ ...
- Hadoop 之日志管理—应用在 YARN 中运行时的日志
背景: 在写这篇博文前,自己一直没有弄明白一个问题,“在 Map 函数和 Reduce 函数中使用 System.out.print 打印日志时,输出内容在哪里显示?”.试了好多回,在 log/* 目 ...
- Groovy介绍
关于 Groovy 这一节将学习 Groovy 的基础知识:它是什么,它与 Java 语言和 JVM 的关系,以及编写 Groovy 代码的一些要点. 一.什么是 Groovy? Groovy 是 J ...
- [LeetCode] questions conclustion_Path in Tree
Path in Tree: [LeetCode] 112. Path Sum_Easy tag: DFS input: root, target, return True if exi ...
- How to install MVVM Light Toolkit via NuGet
Here is how you can install MVVM Light Toolkit via NuGet in an easy way using only Visual Studio. S ...
- mysql参数配置文件
(1)参数配置文件中的内容以键值对形式存在. (2)如何查看键值对?show variables like '%name%';或者查看information_schema库下的global_varia ...
- Spring Security中异常上抛机制及对于转型处理的一些感悟
在使用Spring Security的过程中,我们会发现框架内部按照错误及问题出现的场景,划分出了许许多多的异常,但是在业务调用时一般都会向外抛一个统一的异常出来,为什么要这样做呢,以及对于抛出来的异 ...
- 岭回归(Ridge Regression)
一.一般线性回归遇到的问题 在处理复杂的数据的回归问题时,普通的线性回归会遇到一些问题,主要表现在: 预测精度:这里要处理好这样一对为题,即样本的数量和特征的数量 时,最小二乘回归会有较小的方差 时, ...