Linux下使用Caffe自己制作数据、并训练手写数字识别模型(python版)

本文详细介绍了如何在Linux下利用Caffe框架,从下载MNIST数据集到处理数据集,制作LMDB数据库,训练LeNet-5模型,并进行模型评估和手写数字识别的过程。遇到的问题和解决方法也在文中分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:训练模型

第一步:下载MNIST数据集


在Linux的终端输入:

wget http://deeplearning.net/data/mnist/mnist.pkl.gz

原版mnist数据集下载比较慢,所以使用这个bengio组封装好的数据包。

 

第二步:处理数据集(显示数据 - 图片)


(1)使用python下载数据集并转换成图片

# encoding: utf-8

# os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,
# 根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,所以离不了os模块

import os
import pickle ,gzip  #pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。
import matplotlib   #绘图工具包
import matplotlib.pyplot

#从原始文件读入mnist数据
print ('Loading data from mnist.pkl.gzip ...')
with gzip.open('mnist.pkl.gz', 'rb') as f :
    train_set, vaild_set, test_set = pickle.load(f) #pickle.load(file)反序列化对象.将文件中的数据解析为一个Python对象。

#创建mnist文件夹

imgs_dir = 'mnist'
os.system('mkdir -p {}'.format(imgs_dir)) #python中format函数用于字符串的格式化
datasets = {'train': train_set, 'val': vaild_set, 'test': test_set}

#转换train,vai,test 数据集

for dataname, dataset in datasets.items():  #Python 字典 items() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值) 元组数组。
    print('Converting {} dataset ...'.format(dataname))
    data_dir = os.sep.join([imgs_dir, dataname])

    #在mninst文件夹下创建子文件夹
    os.system('mkdir -p {}'.format(data_dir))

    # i代表序号,用zip()函数读取对应位置的图片和标签
    for i, (img, label) in enumerate(zip(*dataset)):
        #格式化生成文件名,第一个字段是序号,第二个字段是数字值
        filename = '{:0>6d}_{}.jpg'.format(i,label)
        filepath = os.sep.join([data_dir, filename])

        #将展开的一维数组还原为二位数组
        img = img.reshape((28, 28))
        # 利用pyplot保存可以自动归一化生成像素值在0~255之间的灰度图片
        matplotlib.pyplot.imsave(filepath, img, cmap='gray')
        if (i+1)% 10000 == 0:
            print('{} images converted!'.format(i+1))

这样就处首先创建mnist文件夹(在pychram工程文件夹同一目录下)然后得到了train,test,val三个子文件夹分别保存对应的3个数据集转化后产生的图片(28 * 28像素)。命名规则是:第一个字段是序号,第二个字段是数字的值,保存为jpg格式。

(2)利用CAFFE提供的工具制作LMDB数据

LMDB(Lightning Memery-Mapped Database,闪电般快速的内存映射型数据库)是caffe中最常用的一种数据库格式。

来自caffe提供了专门为图像分类任务将图片转换为的官方工具,路径是朱古力/建设/工具/ convert_imageset。

使用方法:

1.生成一个图片文件路径的列表。格式例如:mnist_images / val / 000000_3.jpg 3

                                    &nb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值