📄 addbindata.cc
字号:
const char *help = "\progname: addbindata.cc\n\code2html: This program copies 2 bindata files into one.\n\version: Torch3 vision2.0, 2003-2005\n\(c) Sebastien Marcel (marcel@idiap.ch)\n";#include "DiskXFile.h"#include "CmdLine.h"using namespace Torch;int main(int argc, char *argv[]){ char *filename_in1; char *filename_in2; char *filename_out; bool verbose; CmdLine cmd; cmd.setBOption("write log", false); cmd.info(help); cmd.addText("\nArguments:"); cmd.addSCmdArg("filename in 1", &filename_in1, "input bindata filename 1"); cmd.addSCmdArg("filename in 2", &filename_in2, "input bindata filename 2"); cmd.addSCmdArg("filename out", &filename_out, "output bindata filename"); cmd.addText("\nArguments:"); cmd.addBCmdOption("-verbose", &verbose, false, "verbose"); cmd.read(argc, argv); DiskXFile *file = NULL; DiskXFile *fileout = NULL; 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; { file = new DiskXFile(filename_in1, "r"); file->read(&n_patterns, sizeof(int), 1); file->read(&m, sizeof(int), 1); if(verbose) { print("Reading bindata file (%s)\n", filename_in1); print(" n_inputs = %d\n", m); print(" n_patterns = %d\n", n_patterns); } n_inputs = m; P += n_patterns; delete file; file = NULL; } { file = new DiskXFile(filename_in2, "r"); file->read(&n_patterns, sizeof(int), 1); file->read(&m, sizeof(int), 1); if(verbose) { print("Reading bindata file (%s)\n", filename_in2); print(" n_inputs = %d\n", m); print(" n_patterns = %d\n", n_patterns); } 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]; { file = new DiskXFile(filename_in1, "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; } { file = new DiskXFile(filename_in2, "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 + -