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

📄 getpars.c

📁 C-package of "Long Short-Term Memory" for Protein classification
💻 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 + -