caffe训练时根据文件名产生类别标号文件c++代码
来源:互联网 发布:ar3d什么软件 编辑:程序博客网 时间:2024/04/28 09:44
caffe训练时,图片分为test集和train集,图片如下:
要产生文件列表
格式如下:
test\300.jpg 3
test\301.jpg 3
test\400.jpg 4
test\401.jpg 4
test\500.jpg 5
test\501.jpg 5
代码如下:
#include "stdafx.h"#include <string>#include <io.h>#include <vector>#include <iostream>using namespace std;/************************************************************************//* 获取文件夹下所有文件名输入:path:文件夹路径exd: 所要获取的文件名后缀,如jpg、png等;如果希望获取所有文件名, exd = ""输出:files:获取的文件名列表shao, 20140707*//************************************************************************/void getFiles(string path, string exd, vector<string>& files){//cout << "getFiles()" << path<< endl; //文件句柄long hFile = 0;//文件信息struct _finddata_t fileinfo;string pathName, exdName;if (0 != strcmp(exd.c_str(), "")){exdName = "\\*." + exd;}else{exdName = "\\*";}if ((hFile = _findfirst(pathName.assign(path).append(exdName).c_str(), &fileinfo)) != -1){do{//cout << fileinfo.name << endl; //如果是文件夹中仍有文件夹,迭代之//如果不是,加入列表if ((fileinfo.attrib & _A_SUBDIR)){if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)getFiles(pathName.assign(path).append("\\").append(fileinfo.name), exd, files);}else{if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)files.push_back(pathName.assign(path).append("\\").append(fileinfo.name));}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}}void main(){cout << "create train and test file list" << endl;vector<string> files;char * filePath = "D:\\deep_learning\\caffe-windows-master\\data\\re\\test";//获取该路径下的所有jpg文件getFiles(filePath, "jpg", files);FILE* fp;string test_file = "D:\\deep_learning\\caffe-windows-master\\examples\\myfile\\test.txt";errno_t tOk = fopen_s(&fp, test_file.c_str(), "w");if (0 != tOk){cout << "fopen_s error:" << tOk << endl;return; }cout << test_file << endl; int size = files.size();for (int i = 0; i < size; i++){int pos = files[i].find_last_of("\\");string fname = files[i].substr(pos + 1);string f = fname.substr(0, 1);string row = "test\\" + fname + " " + f;if (i > 0){row = "\n" + row;}//cout << row << endl;fputs(row.c_str(), fp);//cout << "fx="<<files[i].c_str() << endl;}fclose(fp); char * filePath2 = "D:\\deep_learning\\caffe-windows-master\\data\\re\\train";//获取该路径下的所有jpg文件//先要清空一下files.clear(); getFiles(filePath2, "jpg", files); string train_file = "D:\\deep_learning\\caffe-windows-master\\examples\\myfile\\train.txt";tOk = fopen_s(&fp, train_file.c_str(), "w");if (0 != tOk){cout << "train_file fopen_s error:" << tOk << endl;return;}cout << train_file << endl; size = files.size();cout << "train file size="<<size << endl;for (int i = 0; i < size; i++){int pos = files[i].find_last_of("\\");string fname = files[i].substr(pos + 1);string f = fname.substr(0, 1);string row = "train\\" + fname + " " + f;if (i > 0){row = "\n" + row;}//cout << row << endl;fputs(row.c_str(), fp);//cout << "fx="<<files[i].c_str() << endl;}fclose(fp);getchar();}
0 0
- caffe训练时根据文件名产生类别标号文件c++代码
- 根据文件名或者产生时间获取文件夹得文件顺序
- 随机产生文件名的代码
- Matlab2012Ra由M文件产生C代码
- Matlab2012Ra由M文件产生C代码
- 根据文件句柄,获取文件名
- 根据文件handle获得文件名
- 根据文件句柄,获取文件名
- 根据文件名获取文件id
- 怎样用自己的数据集对caffe训练好的model进行fineture(当类别数量不一致时)
- android打开各种文件代码,根据文件名自动选择打开程序
- caffe训练中create image数据产生的bug
- 根据文件句柄,获取文件名(转载)
- shell编程,根据文件名找出不同文件
- JAVA根据文件名、URL下载远程文件
- C++根据文件路径获取文件名
- caffe根据训练出的模型提取特征
- caffe用python产生prototxt文件
- Java Ehcache整合spring配置
- Delete SVN Folders.reg
- transform
- wireshark-2.0.3 开发编译
- C语言之二维数组 调换行和列 设a是3*4二维数组 用C语言程序将其行和列元素互换,并存到另一个二维数组中
- caffe训练时根据文件名产生类别标号文件c++代码
- es 数据迁移
- C++指针加减-题目分析
- Asp.Net开通支付宝移动端网页支付
- 黑群晖利器:花生壳DDNS内网穿透
- 深入理解Android壁纸
- 在几何画板中可以插入公式吗
- Hadoop监控之Ganglia源码编译安装方式(不建议采用)
- 数据分析师,数据挖掘工程师和数据研发工程师有什么区别?