L
Lamerok56
Вобщем такая проблема. Взял книгу C++ neural networks and fuzzy logic. Там отрывок кода следующий был (если что стр. 138:
void network::set_up_network()
{
int i,j,k;
layer_ptr[0]= new input_layer(0,layer_size[0]);
for(i=0;i<(number_of_layers-1);i++)
{
layer_ptr[i+1y]=new middle_layer(layer_size,layer_size[i+1]);
}
layer_ptr[number_of_layers-1]=new output_layer(layer_size[number_of_layers-2],layer_size[number_of_layers-1]);
for(i=0;i<(number_of_layers-1);i++)
{
if(layer_ptr== 0)
{cout << "Not enough memory! Choose another network architecture!\n";
exit(1);
}
}
for(i=1; i<number_of_layers; i++)
layer_ptr->inputs=layer_ptr[i-1y]->outputs;
for(i=1;i<number_of_layers-1;i++)
((output_layer *)layer_ptr)->output_errors=((output_layer *)layer_ptr[i+1])->back_errors;
i=layer_ptr[0]->num_outputs;
j=layer_ptr[number_of_layers-1]->num_outputs;
k=MAX_VECTORS;
buffer=new float[(i+j)*k];
if (buffer==0)
cout << "Not enough memory for buffer!\n";
}
void network::randomize_weights()
{int i;
for(i=1;i<number_of_layers;i++)
((output_layer *)layer_ptr)->randomize_weights();
}
ВОПРОС: Что такое может быть это самое 1y??? В коде выше и вообще никак ничего не объявлено. Да и вообще по правилам помоему нельзя переменные так называть. Ессесно компилятор ругается на это...
void network::set_up_network()
{
int i,j,k;
layer_ptr[0]= new input_layer(0,layer_size[0]);
for(i=0;i<(number_of_layers-1);i++)
{
layer_ptr[i+1y]=new middle_layer(layer_size,layer_size[i+1]);
}
layer_ptr[number_of_layers-1]=new output_layer(layer_size[number_of_layers-2],layer_size[number_of_layers-1]);
for(i=0;i<(number_of_layers-1);i++)
{
if(layer_ptr== 0)
{cout << "Not enough memory! Choose another network architecture!\n";
exit(1);
}
}
for(i=1; i<number_of_layers; i++)
layer_ptr->inputs=layer_ptr[i-1y]->outputs;
for(i=1;i<number_of_layers-1;i++)
((output_layer *)layer_ptr)->output_errors=((output_layer *)layer_ptr[i+1])->back_errors;
i=layer_ptr[0]->num_outputs;
j=layer_ptr[number_of_layers-1]->num_outputs;
k=MAX_VECTORS;
buffer=new float[(i+j)*k];
if (buffer==0)
cout << "Not enough memory for buffer!\n";
}
void network::randomize_weights()
{int i;
for(i=1;i<number_of_layers;i++)
((output_layer *)layer_ptr)->randomize_weights();
}
ВОПРОС: Что такое может быть это самое 1y??? В коде выше и вообще никак ничего не объявлено. Да и вообще по правилам помоему нельзя переменные так называть. Ессесно компилятор ругается на это...