⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addfilebindata.cc

📁 torch tracking code, it is a good code
💻 CC
字号:
const char *help = "\progname: addfilebindata.cc\n\code2html: This program concatenates several bindata files into one bindata file.\n\version: Torch3 vision2.0, 2003-2005\n\(c) Sebastien Marcel (marcel@idiap.ch)\n";#define NBFILES_MAX 100000#include "DiskXFile.h"#include "FileListCmdOption.h"#include "CmdLine.h"using namespace Torch;int main(int argc, char *argv[]){	char *filename_out;	bool verbose;		FileListCmdOption filelist("file name", "the list files or one data file");        filelist.isArgument(true);		CmdLine cmd;	cmd.setBOption("write log", false);	cmd.info(help);	cmd.addText("\nArguments:");	cmd.addCmdOption(&filelist);	cmd.addSCmdArg("filename out", &filename_out, "output bindata filename");	cmd.addText("\nOptions:");	cmd.addBCmdOption("-verbose", &verbose, false, "verbose");	cmd.read(argc, argv);	//	if(verbose)	{		print(" + n_filenames = %d\n", filelist.n_files);		for(int i = 0 ; i < filelist.n_files ; i++)			print("   filename[%d] = %s\n", i, filelist.file_names[i]);	}  	if(filelist.n_files > NBFILES_MAX)	{		error("Cannot merge more than %d files", NBFILES_MAX);				return 1;			}        	DiskXFile *file = NULL;	DiskXFile *fileout = NULL;  	if(verbose)  		print("Merging %d files :\n", filelist.n_files);  	fileout = new DiskXFile(filename_out, "w");  	if(fileout == NULL)	{      		error("Opening BinData file %s", filename_out);            		return 1;	}  	// Reading headers  	int P = 0;	int n_patterns;	int n_inputs, m;  	for(int i = 0 ; i < filelist.n_files ; i++)	{				file = new DiskXFile(filelist.file_names[i], "r");				file->read(&n_patterns, sizeof(int), 1);		file->read(&m, sizeof(int), 1);		if(verbose)		{			print("Reading bindata file (%s)\n", filelist.file_names[i]);			print("   n_inputs = %d\n", n_inputs);			print("   n_patterns = %d\n", n_patterns);  		}		if(i == 0)		{			n_inputs = m;		}		else		{			if(m != n_inputs)			{				delete fileout;				delete file;				error("Files to merge does not have the same input dimension");				return 1; 				  			}		}						P += n_patterns;  		delete file;		file = NULL;	}  	fileout->write(&P, sizeof(int), 1);	fileout->write(&n_inputs, sizeof(int), 1);	if(verbose)	{  		print("\n");    		print("Writing bindata file :\n");    		print("   n_inputs : %d\n", n_inputs);  		print("   n_patterns : %d\n", P);  	}	real *input = new real [n_inputs];	  	for(int i = 0 ; i < filelist.n_files ; i++)	{				file = new DiskXFile(filelist.file_names[i], "r");				file->read(&n_patterns, sizeof(int), 1);		file->read(&n_inputs, sizeof(int), 1);		for(int p = 0 ; p < n_patterns ; p++)		{		  			file->read(input, sizeof(real), n_inputs);			fileout->write(input, sizeof(real), n_inputs);		}		delete file;		file = NULL;	}		delete [] input;	delete fileout;	return 0;}   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -