#include #include #include using namespace std; #include #include #include #include #include "gradgsl.h" #include "netdimsandfilenames.h" void checkfstream(ofstream& file_io,const char* filename); //in ../geral/checkfstream.cpp void checkfstream(ifstream& file_io,const char* filename); //in ../geral/checkfstream.cpp void read_datafile(ifstream&in,netdimsandfilenames& A); //in netdimsandfilenames.cpp void readgslvectormatrix(FILE* readfromfile, gsl_vector* v,vector&sizes); //save a vector that contains several gslmatrices void savegslvectormatrix(FILE* writetofile, gsl_vector* v,vector&sizes); int givesize_gslvector_infile(FILE* readfromfile); void readgslmatriz(const char* filename,gsl_matrix*&m); void writegslmatriz(const char* filename,gsl_matrix*m); void writegslvector(const char* filename,gsl_vector*m); //in iosgslvectormatrix.cpp void reconstructfrompatches_startingfrom(gsl_vector*longsignal, gsl_matrix*patches, int start, int comp, int jump); //in reconstructfrompatchesstartingfrom.cpp // ------------------------------------------------------------------- void interpolatepatchdata(gsl_matrix*&patchdata,int newpatchsize,int step); //in interpolate.cpp int main(int argc, char ** argv){ try{ if(argc<4){ cout<<" must be called with argument signal1 signalaim folder name and optionaly with 'aim new patchsize'!"<size2!=ninputs){ cout<<"inputdata is not compatible with ninputs!"<size1; //size_t numbatches=1; //parametersgradgsl td(numhidlayers,dimensions,npatches); //load weights int numweights=(ninputs+1)*nhidden0+(nhidden0+1)*nhidden1+(nhidden1+1)*nhidden2+(nhidden2+1)*nhidden3+(nhidden3+1)*noutputs; gsl_vector * minimumweights=gsl_vector_alloc (numweights); vector sizes; FILE * readweights = fopen(f.c_str(), "r"); cout<<"loading weights from "<4){ newpatchsize=atoi(argv[4]); int step=(newpatchsize-1)/(noutputs-1); if(newpatchsize>noutputs){ interpolatepatchdata(tf.fwd_data,newpatchsize,step); comp=(npatches-1)*jump+newpatchsize; } else comp=(npatches-1)*jump+noutputs; } else comp=(npatches-1)*jump+noutputs; gsl_vector*recsignal=gsl_vector_alloc(comp); //start allways at zero reconstructfrompatches_startingfrom(recsignal, tf.fwd_data,0, comp, jump); //file for reconstructed long signal string recsg="../"; recsg.append(cc); recsg.append("/reconstructed_long_signal_"); recsg.append(signal1); recsg.append("_"); recsg.append(signal2); recsg.append(".txt"); cout<<"writing reconstructed signal in "<size); writegslmatriz(recsg.c_str(),&aauuxx.matrix); gsl_vector_free(recsignal); //time---------------------- gettimeofday(&end, NULL); int seconds = end.tv_sec - start.tv_sec; int useconds = end.tv_usec - start.tv_usec; int mtime = ((seconds) * 1000 + useconds/1000.0) + 0.5; cout<<"Elapsed time: "<