📄 getpars.c
字号:
/* * $Id: getpars.c 1272 2007-05-09 16:26:20Z mhe $ */ #include <stdio.h>#include <stdlib.h>#include "lstm.h"#include "getpars.h"void getpars(char *configfile){ int j,u,v,dummy,corr[50],corr1[4][30],sav; char *wrong1[] = { "number memory cell blocks: ?", "###here definitions for each block###", "###end definitions for each block###", "windowsize: ?", "outputbias: ?", "inputdata training: ?", "inputdata test: ?", "targetdata training: ?", "targetdata test: ?", "targetvalue0: ?", "targetvalue1: ?", "learning rate: ?", "half interval length for intialization: ?", "performing test after ? epochs: ?", "write weight after ? epochs: ?", "initialization of random generator: ?", "reset the net after each sequence?: ?", "weight update after sequence or epoch?: ?", "stop learning after n epochs: ?", "size of training set: ?", "maxlength of training set: ?", "size of test set: ?", "maxlength of test set: ?" } , *wrong2[] = { "**block number: ?**", "block size: ?", "initial input gate bias: ?", "initial output gate bias: ?" }; FILE *fp; for (u=0;u<50;u++) { corr[u]=1; } for (v=0;v<4;v++) { for (u=0;u<30;u++) { corr1[v][u]=1; } } v=0; fp=fopen(configfile,"r"); if (!fp) { fprintf(stderr, "configfile %s not found. Exiting\n", configfile); exit(100); } corr[v]=fscanf(fp,"number memory cell blocks: %d\n",&num_blocks); v++; corr[v]=fscanf(fp,"###here definitions for each block###\n"); corr[v]=1; v++; sav=v; for (u=0;u<num_blocks;u++) { corr1[0][u]=fscanf(fp,"**block number: %d**\n",&dummy); corr1[1][u]=fscanf(fp,"block size: %d\n",&block_size[u]); fscanf(fp,"initial input bias: %lf\n",&bias_memin[u]); corr1[2][u]=fscanf(fp,"initial input gate bias: %lf\n",&bias_inp[u]); corr1[3][u]=fscanf(fp,"initial output gate bias: %lf\n",&bias_out[u]); fscanf(fp,"initial output weight: %lf\n",&weight_memout[u]); } corr[v]=fscanf(fp,"###end definitions for each block###\n"); corr[v]=1; v++; corr[v]=fscanf(fp,"windowsize: %d\n", &windowsize); v++; corr[v]=fscanf(fp,"outputbias: %lf\n", &outputbias); v++; corr[v]=fscanf(fp,"inputdata training positive: %s\n", traindata_positive); v++; corr[v]=fscanf(fp,"inputdata test positive: %s\n", testdata_positive); v++; corr[v]=fscanf(fp,"inputdata training negative: %s\n", traindata_negative); v++; corr[v]=fscanf(fp,"inputdata test negative: %s\n", testdata_negative); v++; corr[v]=fscanf(fp,"targetvalue0: %lf\n", &targetvalue0); v++; corr[v]=fscanf(fp,"targetvalue1: %lf\n", &targetvalue1); v++; corr[v]=fscanf(fp,"learning rate: %lf\n",&alpha); v++; corr[v]=fscanf(fp,"half interval length for intialization: %lf\n",&init_range); v++; corr[v]=fscanf(fp,"performing test after ? epochs: %d\n",&test_aus); v++; corr[v]=fscanf(fp,"write weight after ? epochs: %d\n",&w_out); v++; corr[v]=fscanf(fp,"initialization of random generator: %d\n",&ran_sta); v++; corr[v]=fscanf(fp,"reset the net after each sequence?: %d\n",&sequ_reset); v++; corr[v]=fscanf(fp,"weight update after sequence or epoch?: %d\n",&w_up); v++; corr[v]=fscanf(fp,"stop learning after n epochs: %d\n",&maxepoch); v++; corr[v]=fscanf(fp,"size of training set: %d\n",&training_size); v++; corr[v]=fscanf(fp,"max length of training set: %d\n", &maxseqlentrain); v++; corr[v]=fscanf(fp,"size of test set: %d\n", &test_size); v++; corr[v]=fscanf(fp,"max length of test set: %d\n", &maxseqlentest); v++; fclose(fp); for (u=0;u<sav;u++) { if (corr[u]==0) { fprintf(stderr, "Error in %s at line:\n", configfile); printf("%s\n",wrong1[u]); exit(0); } } for (u=0;u<num_blocks;u++) { for (j=0;j<4;j++) { if (corr1[j][u]==0) { fprintf(stderr, "Error in %s at block %d 's definition at line:\n", configfile, u+1); fprintf(stderr, "%s\n",wrong2[j]); exit(0); } } } for (u=sav;u<v;u++) { if (corr[u]==0) { fprintf(stderr, "Error in %s at line:\n", configfile); fprintf(stderr, "%s\n",wrong1[u]); exit(0); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -