《智能系统与技术丛书 深度学习实践:基于Caffe的解析》—3.4Caffe简单训练分类任务

举报
华章计算机 发表于 2019/06/02 16:36:11 2019/06/02
【摘要】 本书摘自《智能系统与技术丛书 深度学习实践:基于Caffe的解析》一文中的第3章,第3.4节,作者是薛云峰。

3.4 Caffe简单训练分类任务

       1.需要准备的数据集

       到官网上下载cifar10数据集,如果使用的是C++,那么下载.bin文件。官网对该数据集的介绍已经很详细了,这里就不再说明了。下载完成之后,解压,会看到共有6个“.bin”文件,前面5个是训练集,最后一个是测试集,如图3-3所示。

image.png

图 3-3

       2.将数据集转换为LevelDB

       第一步,生成convert_cifar_data.exe文件。将examples/cfar10目录下的convert_cifar_data.cpp文件加入到工程中,如图3-4和图3-5所示。

image.png

图 3-4

image.png

       然后,运行编译,在相应的文件夹中将生成的exe文件重命名为convert_cifar_data.exe。

       第二步,产生数据集。

       首先,在convert_cifar_data.exe所在的文件夹目录下,新建两个文件夹,分别命名为input_folder和output_folder。在input_folder中放入第一阶段准备好的cifar10数据,output_folder为转换数据之后的存储位置。

       然后,在同级目录下新建一个批处理文件,使其后缀名为“.bat”,输入以下内容并保存:

       convert_cifar_data.exe  input_folder output_folders leveldb  

    pause  

       接着,运行“.bat”,如图3-6所示。

image.png

图 3-6

       运行完成后,output_folders文件夹中将会产生两个新的文件夹,如图3-7所示。

       这两个文件夹中的内容如图3-8和图3-9所示。

image.png

图 3-7

image.png

图 3-8

image.png

图 3-9

       至此已经成功将数据集转换为LevelDB。

       3. 生成均值文件

       将tools文件夹中的compute_image_mean.cpp文件导入工程中,如图3-10所示。

       编译成功后,相应的文件夹目录下将会生成exe文件,将其命名为compute_image_mean.exe,如图3-11所示。

image.png

                                                                      图 3-10                                                                                图 3-11

       然后,在当前目录下新建一个bat文件,内容如下:

       compute_image_mean.exe 

       output_folders/cifar10_train_leveldb ./mean.binaryproto 

       --backend=leveldb pause

       最后,运行“.bat”,如图3-12所示。

image.png

图 3-12

       运行之后,当前文件夹下会生成一个mean.binaryproto文件(如图3-13所示),该文件即为均值文件。

image.png

图 3-13

       4. 训练cifar10数据集

       首先,将examples\cifar10文件下的cifar10_quick_trian_test.prototxt和cifar10_quick_solver.prototxt复制到均值文件所在的目录之下,如图3-14所示。

image.png

图 3-14

       然后,修改cifar10_quick_train_test.prototxt文件中的mean_file和source的路径,即将backend修改为LevelDB,如图3-15所示。

       之后,修改cifar10_quick_solver.prototxt文件中的net和snapshot prefix的路径,如图3-16所示。

image.png

图 3-15

image.png

图 3-16

        接下来就可以编译caffe.exe了。

        将caffe.cpp文件加入到工程项目下并编译,然后将生成的caffe.exe文件移动到均值文件目录下(如图3-17所示)。

image.png

图 3-17

现在,新建一个bat文件,其内容具体如下:

        Caffe.exe train 

        --solver=D:/CaffeeLibs/Data/cifar-10/cifar10_quick_solver.prototxt

        pause  

        执行上述命令,开始训练,如图3-18所示。

image.png

图 3-18

        训练完成后的截图如图3-19所示。

image.png

图 3-19

       此时,当前目录下将会生成一个cifar10_quick_iter_4000.caffemodel.h5文件,这表明cifar10的训练已经顺利完成。

       在这一节中,大家需要学习的是,在已知的各种标注信息的情况下如何训练一个数据,并生成LevelDB和LMDB的脚本。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。