📄 load_neuron_array.c
字号:
/* load_neuron_array.c *//* Copyright 2004 Oswaldo Morizaki *//* This file is part of ga-nn-ag. ga-nn-ag is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ga-nn-ag is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with ga-nn-ag; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*/#include "my_header.h"#include "aux_prot.h"int load_neuron_array(int num_neuron, struct neuron ** neuron_array, const char * filename){ int k,l,m,n,o,p; double temp[4]; FILE * file_pointer; char char_temp[BUFFSIZE]; if( (file_pointer=fopen(filename,"r")) == NULL ) { return(-1); } while(!feof(file_pointer)) { fgets(char_buffer,BUFFSIZE,file_pointer); if(!strncmp(char_buffer,"neuron_array",12)) { fgets(char_buffer,BUFFSIZE,file_pointer); //num_neuron for (k=0; k< num_neuron;k ++) { fgets(char_buffer,BUFFSIZE,file_pointer); //neuron number fgets(char_buffer,BUFFSIZE,file_pointer); neuron_array[k]->alpha=atof(char_buffer+6); //alpha fgets(char_buffer,BUFFSIZE,file_pointer); neuron_array[k]->conv_rate=atof(char_buffer+10); //conv_rate fgets(char_buffer,BUFFSIZE,file_pointer); neuron_array[k]->bias_corr=atoi(char_buffer+10); //bias_correction fgets(char_buffer,BUFFSIZE,file_pointer); neuron_array[k]->delta_type=atoi(char_buffer+11); //delta_type fgets(char_buffer,BUFFSIZE,file_pointer); neuron_array[k]->momentum=atoi(char_buffer+9); //momentum fgets(char_buffer,BUFFSIZE,file_pointer); neuron_array[k]->x_c=atof(char_buffer+4); //x_c fgets(char_buffer,BUFFSIZE,file_pointer); neuron_array[k]->y_c=atof(char_buffer+4); //y_c fgets(char_buffer,BUFFSIZE,file_pointer); neuron_array[k]->range=atof(char_buffer+6); //range fgets(char_buffer,BUFFSIZE,file_pointer); l=atoi(char_buffer+8); neuron_array[k]->num_con=l; //num_con if (l) { if ( !(neuron_array[k]->con_x = (float *)calloc(l,sizeof(float)) )) { syslog(LOG_CRIT,"Error calloc neuron_array[%d]->con_x\n",k); return(-1); } if ( !(neuron_array[k]->con_y = (float *)calloc(l,sizeof(float)) )) { syslog(LOG_CRIT,"Error calloc neuron_array[%d]->con_y\n",k); return(-1); } if( !(neuron_array[k]->con_w = (double *)calloc(l,sizeof(double)) )) { syslog(LOG_CRIT,"Error calloc neuron_array[%d]->con_w\n",k); return(-1); } if( !(neuron_array[k]->age = (int *)calloc(l,sizeof(int)) )) { syslog(LOG_CRIT,"Error calloc neuron_array[%d]->age\n",k); return(-1); } if (neuron_array[k]->momentum == 1) { if ( !(neuron_array[k]->delta_con_w = (double *)calloc(l,sizeof(double)) )) { syslog(LOG_CRIT,"Error calloc neuron_array[%d]->delta_con_w\n",k); return(-1); } } } else { neuron_array[k]->con_x = NULL; neuron_array[k]->con_y = NULL; neuron_array[k]->con_w = NULL; neuron_array[k]->age = NULL; neuron_array[k]->delta_con_w = NULL; } fgets(char_buffer,BUFFSIZE,file_pointer); neuron_array[k]->bias=atof(char_buffer+5); //bias for (m=0; m<l; m++) { fgets(char_buffer,BUFFSIZE,file_pointer);// syslog(LOG_INFO,char_buffer); o=0; p=0; for (n=0;n<BUFFSIZE;n++) { char_temp[n-o]=char_buffer[n]; if ( (char_buffer[n] == ':') || (char_buffer[n] == '\n' ) || feof(file_pointer) ) { char_temp[n-o]='\0'; o=n+1; temp[p]=atof(char_temp);// syslog(LOG_INFO,"char_temp=%s",char_temp); p++; if ((char_buffer[n] == '\n') || feof(file_pointer)) { break; } } } *(neuron_array[k]->con_x+m)=temp[0]; *(neuron_array[k]->con_y+m)=temp[1]; *(neuron_array[k]->con_w+m)=temp[2]; *(neuron_array[k]->age + m)=(int)temp[3];// syslog(LOG_INFO,"%1.15f:%1.15f:%3.9f:%d\n",*(neuron_array[k]->con_x+m)// ,*(neuron_array[k]->con_y+m),*(neuron_array[k]->con_w+m),*(neuron_array[k]->age+m)); } fgets(char_buffer,BUFFSIZE,file_pointer); //empty line } } } fclose(file_pointer); return(1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -