前提:caffe 的源码已在Windows上成功编译通过
1、准备自己的数据集。如文件夹0和文件1,其中0和1是图像的类别标签,我这里用的是0_S,1_I,并将图像保存在F:\caffe-master\data\image中;
2、制作图像标签文件。利用Python或其他代码将图像和标签,写入相应的训练标签、验证标签文件中;
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 6 00:40:04 2018
@author: Administrator
"""
import os
def dirlist(path, allfile):
filelist = os.listdir(path)
for filename in filelist:
filepath = os.path.join(path, filename)
if os.path.isdir(filepath):
dirlist(filepath, allfile)
else:
allfile.append(filepath)
return allfile
imgnames = dirlist('F:\\caffe-master\\data\\image', [])
#print(imgnames)
num_all = [0, 0]
dirs = ['0_S', '1_I']
for name in imgnames:
if '.jpg' not in name:
continue
split_name = name.split('\\')#字符串分割
#print(split_name[-2])#倒数第二个字符串
if split_name[-2] in dirs:
id = dirs.index(split_name[-2])#获取类别文件夹号
#print(id)
num_all[id] += 1#统计各文件夹张数
#print(num_all[id])
print(num_all[0])
print(num_all[1])
#随机打乱函数
import random
imgnames_s = imgnames
random.shuffle(imgnames)
dir = dirs
# dir = os.listdir('D:\\stomach_raw_data\\data')
# dir =['0','1','2','3','4']
f = open('F:\\caffe-master\\data\\image\\train_8.txt', 'w')
f1 = open('F:\\caffe-master\\data\\image\\test_8.txt', 'w')
fal = open('F:\\caffe-master\\data\\image\\train_all_8.txt', 'w')
numframe = 0
numid6 = -1
for name in imgnames:
if '.jpg' not in name:
continue
b = name.replace('\\', '/')
print(b)
c = b.replace('F:/caffe-master/data/image/', '')
print(c)
d = c.split("/")[1]
print(d)
#print(dir)
if c.split('/')[0] in dir:
id = str(dir.index(c.split('/')[0]))
#id = str(id.split('/'))
print(id)
if id == '6':
numid6 += 1
if numid6 % 10 != 0:
continue
#line = d + ' ' + id + '\n'
line = c + ' ' + id + '\n'
print(line)
#line = 'D:/stomach_raw_data/data/' + c + ' ' + id + '\n'
fal.writelines(line)
if numframe % 10 < 2:
f1.writelines(line)
else:
f.writelines(line)
numframe += 1#统计图片总数
print(numframe)
f.close()
f1.close()
fal.close()
3、制作训练LMDB和验证LMDB。
//训练LMDB脚本,可保存在create_train_lmdb.bat文件中
E:/caffe-master/Build/x64/Debug convert_imageset.exe --shuffle --resize_heiht=128 --resize width =128 F:/caffe-master/data/image/ F:/caffe-master/data/image/train_8.txt
F:/caffe-master/data/image/train_lmdb
//制作测试LMDB同上
//综述:convert_imageset.exe执行文件 图像宽高 图像路径 标签文件 LMBD生成路径
4、配置超参数文件 lenet_slover.prototxt,文件在example下的minist文件下。
1)、修改网络描述文件的路径
2)、修改CPU/GPU模式
5、修改网络描述文件lenet_train.prototxt, 文件在example下的minist文件下。
1)、修改LMDB的训练路径和验证路径
2)、修改num_output为你自己想要的输出标签个数
注意:LMDB路径千万不能错,仔细检查
扫描二维码关注公众号,回复:
4385802 查看本文章
6、最后运行
E:/caffe-master/Build/x64/Debug caffe.exe --slove=F:/caffe-master/data/lenet_slover.prototxt(超参数配置文件路径)
7、OK,完成。