caffe学习笔记——python+mnist手写数字识别

1、数据准备

       之前的博客中已经对mnist数据集进行过介绍,这里我们直接将保存好的图片拿过来处理。数据分成了训练集(60000张共10类)和测试集(共10000张10类),将每个类别放在一个单独的文件夹里。并且将所有的图片,都生成了txt列表清单(train.txt和test.txt)。为节约时间,这里直接下载denny分享的数据集:http://pan.baidu.com/s/1pLMV4Kz

       在caffe根目录下新建一个mnist文件夹,并将图片解压在该文件夹下。(一般caffe程序都是先将图片转换成lmdb文件,这里直接使用图片操作,导致均值很难计算,因此不进行减均值运算)

2、导入caffe库

import caffe
from caffe import layers as L,params as P,proto,to_proto
#设定文件的保存路径
root='D:/caffe/caffe-master/caffe-master/mnist/'                           #根目录
train_list=root+'mnist/train/train.txt'     #训练图片列表
test_list=root+'mnist/test/test.txt'        #测试图片列表
train_proto=root+'mnist/train.prototxt'     #训练配置文件
test_proto=root+'mnist/test.prototxt'       #测试配置文件
solver_proto=root+'mnist/solver.prototxt'   #参数文件

压缩文件中除了包含了训练及测试图片外还包含相应的TXT文件。

3、生成配置文件

用python生成后缀名为prototxt的配置文件,即为network进行构造:

#编写一个函数,生成配置文件prototxt
def Lenet(img_list,batch_size,include_acc=False):
    #第一层,数据输入层,以ImageData格式输入
    data, label = L.ImageData(source=img_list, batch_size=batch_size, ntop=2,root_folder=root,
        transform_param=dict(scale= 0.00390625))
    #第二层:卷积层
    conv1=L.Convolution(data, kernel_size=5, stride=1,num_output=20, pad=0,weight_filler=dict(type='xavier'))
    #池化层
    pool1=L.Pooling(conv1, pool=P.Pooling.MAX, kernel_size=2, stride=2)
    #卷积层
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值