您的位置:首页 > Web前端

Windows10下使用Caffe训练神经网络步骤一

2018-07-05 16:18 190 查看

一、生成Caffe数据库

1、准备数据

参考链接中的作者提供了一些图片,共有500张图片,分为大巴车、恐龙、大象、鲜花和马五个类,每个类100张。编号分别以3,4,5,6,7开头,各为一类。其中每类选出20张用作测试,其余80张用作训练。因此最终训练图片400张,测试图片100张,共5类。我在caffe根目录下的examples文件夹里新建了test_A文件夹,并将图片集放入其中。即,训练图片目录:examples/test_A/train,测试图片目录: examples/test_A/val  备注:总的图片500张,序号300-799;val文件夹下面试300-319,400-419,500-519,600-619,700-719共计100张;其余在train文件夹下

2、生成图片文件列表清单

在生成数据库之前,需要生成图片文件列表清单,一般为.txt文件。我创建.py脚本文件来执行这一步,具体代码create_txt.py如下(代码只是随便写的,可以优化):就是在上述目录下面新建train.txt和val.txt文件上生成标签的代码:

# -*- coding: UTF-8 -*-
# Date:2018.07.05

import os
import re

path_train = train文件夹绝对目录
path_val = val文件夹绝对目录

if not os.path.exists(path_train):
print("path_train not exist!!!")
os._exit()
else:
print("path_train exist!!!")

if not os.path.exists(path_val):
print("path_val not exist!!!")
os._exit()
else:
print("path_val exist!!!")

file_train = open(train.txt文件绝对目录,'wt')
file_val = open(val.txt文件绝对目录,'wt')

file_train.truncate()#截断文件
file_val.truncate()

pa = r".+(?=\.)"
pattern = re.compile(pa)

print "now,creating train.txt..."
for filename in os.listdir(path_train):
# print filename
# abspath = os.path.join(path_train,filename);
group_lable = pattern.search(filename)
str_label = str(group_lable.group())
if str_label[0] == '3':
train_lable = '0'
elif str_label[0] == '4':
train_lable = '1'
elif str_label[0] == '5':
train_lable = '2'
elif str_label[0] == '6':
train_lable = '3'
elif str_label[0] == '7':
train_lable = '4'
else:
print "error data!!!"
os._exit()
#	print abspath,train_lable.group()
file_train.write(filename + ' ' + train_lable + '\n')
print "train.txt created!!!"
print "-----------------------------------"
print "now,creating val.txt..."

for filename in os.listdir(path_val):
#	print filename
#	abspath = os.path.join(path_val,filename);
group_lable = pattern.search(filename)
str_label = str(group_lable.group())
if str_label[0] == '3':
val_lable = '0'
elif str_label[0] == '4':
val_lable = '1'
elif str_label[0] == '5':
val_lable = '2'
elif str_label[0] == '6':
val_lable = '3'
elif str_label[0] == '7':
val_lable = '4'
else:
print "error data!!!"
os._exit()
#	print abspath,train_lable.group()
file_val.write(filename + ' ' + val_lable + '\n')
print "val.txt created!!!"

print "function over!!!"
[p]点开train.txt和val.txt就会发现生成好了


3、生成lmdb数据库

在cmd中进入caffe根目录,分别执行以下 指令:[/p]

win+R 操作打开运行面板,输入cmd,回车

在cmd下打开caffe根目录,作者的是caffe-master

输入:

Build\x64\Release\convert_imageset.exe --shuffle --resize_height=256 --resize_width=256 examples\test_A\ examples\test_A\val.txt examples\test_A\val_lmdb

然后回车就会发现上述目录下多了val_lmdb文件夹

再输入:

Build\x64\Release\convert_imageset.exe --shuffle --resize_height=256 --resize_width=256 examples\test_A\ examples\test_A\train.txt examples\test_A\train_lmdb

然后回车就会发现上述目录下多了train_lmdb文件夹

4、生成均值文件

图片减去均值再训练,会提高训练速度和精度。因此,一般都会有这个操作。caffe程序提供了一个计算均值的文件compute_image_mean.cpp,我们直接使用就可以。

输入Build\x64\Release\compute_image_mean.exe examples\test_A\train_lmdb examples\test_A\mean.binaryproto

回车就会发现test_A文件夹下面就有了mean.binaryproto文件



阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐