• Caffe之初见:跑跑mnist,cifar10


    操作系统:win8.1
    编译环境:Caffe+CUDA+cuDNN
    显卡:Nvidia GeForce GT 730(计算能力只有2.1,带不动cuDNN,但不影响使用)
    环境安装参考:Caffe环境布置

    一、Minst训练

         开始训练mnist。
         第一步:我的目录是E:Caffe-Masterexamplesmnist获取leveldb格式的数据集不能FQ的,就到:http://pan.baidu.com/s/1nvSzqkx下载吧。下载完解压到…examplesmnist 文件夹下如下图所示。网络参数可以再lenet_train_test.prototxt中修改。

    因为Caffe默认采用GPU,而我需要用CPU,故需要修改lenet_solver.prototxt中GPU和CPU切换

         第二步:打开lenet_train_test.prototxt。修改参数。将第一条红线处修改为存放leveldb形式的训练数据的路径,将第二条红线处的数据格式修改为LEVELDB的形式。同样将第三条红线处修改为测试集存在的路径,第四条红线处的数据格式修改为LEVELDB。我的修改完成后数据格式如下图所示:

         第三步:写入如下图所示的.bat文件,运行结果:

        我的.bat文件放在E:Caffe-Master目录下面。
        运行结果如下图所示:

    
    
         前面是整个mnist的训练流程,现在接着看如何训练cifar10数据集。

    二、cifar10数据库

          60000张32*32 彩色图片 共10类

          50000张训练

          10000张测试

          下载cifar10数据库:http://pan.baidu.com/s/1dFC09dn

          这是binary格式的,所以我们要把它转换成leveldb格式。

          第一步:在E:Caffe-MasterBuildx64Release目录下面有有个convert_cifar_data.exe文件,若没有则运行程序进行生成。利用convert_cifar_data.exe文件在如下命令下生成ldb文件,何为LDB详情请看http://blog.csdn.net/kkk584520/article/details/41056543博客。事先建立input,output文件夹。将下载好的数据集拷贝到input文件下面。然后运行convert_cifar_data.exe  input output leveldb 命令生成leveldb格式的数据集。

          第二步:计算图像均值:同样在E:Caffe-MasterBuildx64Release目录下面查看是否有comput_image_mean.exe文件。若没有则生成新的exe文件。cmd进入Release目录后运行如下命令生成。compute_image_mean.exe --backend=leveldb output/cifar10_train_leveldb mean.binaryproto   执行后,在bin文件夹下出现一个mean.binaryproto文件,这就是所需的均值文件。

          第三步:训练cifar网络:将在output生成的leveldb文件和均值文件拷贝到/examples/cifar10目录下。修改网络配置文件cifar10_quick_train_test.prototxt中的source: "cifar-train-leveldb"    mean_file: "mean.binaryproto" 文件如下图所示:

               后面再训练就类似于MNIST的训练。写一个train_quick.bat,内容如下:

               训练结果如下:

  • 相关阅读:
    Java ,python面向对象的继承及其区别
    谈谈我理解的敏捷开发
    Centos7 升级python3,解决升级后不兼容问题
    Django + Uwsgi + Nginx 的生产环境部署
    理解Python协程:从yield/send到yield from再到async/await
    【转】Python 数据库连接池
    为何GET只发一次TCP连接,POST发两次TCP连接
    Python简单密码加密程序,加盐(salt)md5
    spring学习(三) ———— spring事务操作
    spring学习(二) ———— AOP之AspectJ框架的使用
  • 原文地址:https://www.cnblogs.com/newbyang/p/5684124.html
Copyright © 2020-2023  润新知