【归纳】win7下caffe环境搭建与测试

来源:互联网 发布:万网域名续费多少钱 编辑:程序博客网 时间:2024/06/06 09:34

前言

由于想自学深度学习,开始着手搭建caffe,先在windows下搭建熟悉一下。结果搞了一天的caffe环境搭建,这里仅是将前人的博客做以记录,以备自己日后想用时不必再东找西找。

过程

这篇博客主要是首先对大概有个了解,对准备工作进行了解

这篇博客和这篇博客是我主要借鉴的博客,按照他的步骤绝对能成功(不过他没有使能python和matlab接口)

caffe搭建成功后利用mnist数据集进行测试,上篇博客说可以借鉴这篇博客,不过我借鉴它并没有成功,我借鉴了这一篇。

其中数据集向lmdb转换仍借鉴这篇博客中,

在测试时仍发生很多问题,其中有一个问题是我的caffe\Build\x64文件夹下没有release,只有debug,这个目前还未研究为啥,反正我在测试时将路径release都改成了debug,测试成功。

总结

在caffe搭建并测试成功后,对于我这枚小白仍不懂得里面的具体,毕竟深度学习如此火热,也不是一朝一夕就能运用自如,希望自己能够不断地学习下去。

补充

补充一个无意中看到的把在官网上下载的mnist测试集的二进制数据转换成图片显示出来的代码,其中mnist数据集下载地址:

http://yann.lecun.com/exdb/mnist/

代码:

#include <iostream>  #include <fstream>  #include <opencv2/core/core.hpp>  #include <opencv2/imgproc/imgproc.hpp>  #include <opencv2/highgui/highgui.hpp>  using namespace cv;  using namespace std;      int main()  {      string train_test_image[2] = { "train-images.idx3-ubyte", "t10k-images.idx3-ubyte" };      string train_test_label[2] = { "train-labels.idx1-ubyte","t10k-labels.idx1-ubyte" };      int label_num[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };      string dir[2] = {"./train/","./test/"};      for (int iter = 0; iter < 2;iter++)      {          //读取label          ifstream fin_label(train_test_label[iter], ios::binary);          vector<int> label;            int magic_number;          fin_label.read((char *)(&magic_number), sizeof(magic_number));          int number_items;          fin_label.read((char *)(&number_items), sizeof(number_items));          while (!fin_label.eof())          {              char label_tmp;              fin_label.read((char *)&label_tmp, sizeof(label_tmp));              label.push_back(label_tmp);          }            //读取图片          vector<Mat> image;          int width = 28, height = 28;          ifstream fin_image(train_test_image[iter], ios::binary);          int magic_number1;          fin_image.read((char *)(&magic_number1), sizeof(magic_number1));          int number_images;          fin_image.read((char *)(&number_images), sizeof(number_images));          int num_rows;          fin_image.read((char *)(&num_rows), sizeof(num_rows));          int num_columns;          fin_image.read((char *)(&num_columns), sizeof(num_columns));          while (!fin_image.eof())          {              unsigned char tmp;              Mat image_tmp(width, height, CV_8UC1);              for (int r = 0; r < image_tmp.rows; r++)              {                   for (int c = 0; c < image_tmp.cols; c++)                  {                      fin_image.read((char *)&tmp, sizeof(tmp));                      image_tmp.at<uchar>(r, c) = tmp;                  }              }              image.push_back(image_tmp);            }            for (int i = 0; i < label.size();i++)          {              char clabel[10];              sprintf_s(clabel, "%d",label[i]);              string slabel = clabel;              char clabel_num[10];              sprintf_s(clabel_num, "%d", label_num[label[i]]);              string slabel_num = clabel_num;                string name = dir[iter] + slabel + "_" + slabel_num + ".jpg";              imwrite(name, image[i]);              label_num[label[i]]++;          }        }                      return 0;  }  

注:在当前cpp文件下应有两个文件夹,分别命名为train和test

成功后效果如下:



代码转自http://blog.csdn.net/qq_14845119/article/details/54895200


最后给出VS2013调用caffe新建自己的工程详细过程,http://blog.csdn.net/auto1993/article/details/70198435


原创粉丝点击