zoukankan      html  css  js  c++  java
  • caffe_windows使用mnist训练的效果测试

    今天根据网上的文章,训练了一下mnist的数据

    效果不是很好

    配置的过程参考:

    http://www.cnblogs.com/yixuan-xu/p/5858595.html 

     http://www.cnblogs.com/yixuan-xu/p/5862657.html

    其实最后他是用的是classification.exe进行分类


    我修改了一个下classification.cpp里面的代码,代码如下:

    int main(int argc, char** argv) {
    	/***
      if (argc != 6) {
        std::cerr << "Usage: " << argv[0]
                  << " deploy.prototxt network.caffemodel"
                  << " mean.binaryproto labels.txt img.jpg" << std::endl;
        return 1;
      }
    
      ::google::InitGoogleLogging(argv[0]);
    
      string model_file   = argv[1];
      string trained_file = argv[2];
      string mean_file    = argv[3];
      string label_file   = argv[4];
      Classifier classifier(model_file, trained_file, mean_file, label_file);
    
      string file = argv[5];
      **/
    	if (argc != 2) {
    		std::cerr << "Usage: " << argv[0]
    			<< " deploy.prototxt network.caffemodel"
    			<< " mean.binaryproto labels.txt img.jpg" << std::endl;
    		return 1;
    	}
    
    	::google::InitGoogleLogging(argv[0]);
    
    	string model_file = "lenet.prototxt";
    	string trained_file = "lenet_iter_10000.caffemodel";
    	string mean_file = "mean.binaryproto";
    	string label_file = "synset_words.txt";
    	Classifier classifier(model_file, trained_file, mean_file, label_file);
    
    	string file = argv[1];
    
    	IplImage *image = cvLoadImage(file.c_str());
    	IplImage *desc;
    	if (!image){
    		printf(" No image data 
     ");
    		return -1;
    	}
    	CvSize sz;
    	sz.width = 28;
    	sz.height = 28;
    	desc = cvCreateImage(sz, image->depth, image->nChannels);
    	cvResize(image, desc, CV_INTER_AREA);
    	cv::Mat imge;
    	imge=cv::cvarrToMat(desc);
    	cv::Mat gray_image;
    	cvtColor(imge, gray_image, CV_BGR2GRAY);
    	imwrite("gray_image.bmp", gray_image);
    	file = "gray_image.bmp";
    
      std::cout << "---------- Prediction for "
                << file << " ----------" << std::endl;
    
      cv::Mat img = cv::imread(file, -1);
      CHECK(!img.empty()) << "Unable to decode image " << file;
      std::vector<Prediction> predictions = classifier.Classify(img);
    
      /* Print the top N predictions. */
      for (size_t i = 0; i < predictions.size(); ++i) {
        Prediction p = predictions[i];
        std::cout << std::fixed << std::setprecision(4) << p.second << " - ""
                  << p.first << """ << std::endl;
      }
    }
    

     最后生成的可以执行的文件包如下

     博客园这货上传文件容量那么少,只能找度娘了

     直接点击里面的bat就可以查看效果!

  • 相关阅读:
    JSP 服务器响应
    JSP 客户端请求
    杂烩笔记
    ExtJS panel
    DB2存储过程语法规则
    CentOS查看软件源提供的软件版本命令
    Linux查看程序端口占用情况【转】
    359. Logger Rate Limiter
    358. Rearrange String k Distance Apart
    357. Count Numbers with Unique Digits
  • 原文地址:https://www.cnblogs.com/baldermurphy/p/6522843.html
Copyright © 2011-2022 走看看