}
}
/**
Конструктор класу Net викликається при створенні мережі по малюнку
@ param Frame owner - батьківський компонент
@ param int aIn кількість нейронів у вхідному шарі
@ param int aSubS кількість прихованих шарів
@ param int [] aSub кількість нейронів в кожному з прихованих шарів
@ param int aOut кількість нейронів у вихідному шарі
*/Net (Frame owner, int aIn, int aSubS, int [] aSub, int aOut)
{= JOptionPane.showOptionDialog (null,
Виберіть функцію активації nеслі вікно буде просто закрито, то буде встановлена ??* Бінарна сигмоїдальна * ,
Діалог ,. DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String []
{ Бінарна n сигмоїдальна ,
Біполярна n сигмоїдальна }, Бінарна n сигмоїдальна );
if (funkciya == JOptionPane.CLOSED_OPTION) funkciya=0;=aIn;=aSubS;=new int [subS]; (int i=0; i lt; subS; i ++)
{[i]=aSub [i];
}=aOut;
=2 + subS;=new ArrayList (); (int i=0; i lt; layers; i ++)
{(i == 0)
{= new Layer ( in raquo ;, in, in, funkciya) ;. add (l);
}
{(i!=layers - 1)
{preL=(Layer) massivLayers.get (i - 1); v=sub [i - 1] ;. setVIxodi (v);=new Layer ( sub raquo ;, sub [i- 1], preL.getVIxodi (), funkciya) ;. add (l);
}
{preL=(Layer) massivLayers.get (i - 1) ;. setVIxodi (out);=new Layer ( out raquo ;, out, preL.getVIxodi (), funkciya) ;. add (l);
}
}
} (strok * stolbcov!=in)
{= JOptionPane.showInputDialog ( Всього нейронів на вході + in + nСколько буде стовпців? );=Integer.parseInt (input);=JOptionPane.showInputDialog ( laquo ; Всього нейронів на вході + in + nСколько буде рядків? );=Integer.parseInt (input);
}=new VvodKartinki (owner, stolbcov, strok);=new VvodCifr (owner, out);
}
/**
Відображає інформацію про нейронної мережі (кількість шарів, кількість нейронів
в кожному шарі, а так само властивості кожного нейрона
@ param JTextArea txtArea - текстова область для відображення інформації
*/void ShowNetInfo (JTextArea txtArea)
{(int i=0; i lt; layers; i ++)
{= (Layer) massivLayers.get (i); (i == 0)
{. append ( вхідний шар n ) ;. append (l.getInfo ());
}
{(i!=layers - 1)
{. append ( n ПРИХОВАНИЙ СЛОЙ n ) ;. append (l.getInfo ());
}
{
txtArea.append ( n ВИХІДНИЙ СЛОЙ n );
txtArea.append (l.getInfo ());
}
}
}. append ( n );
}
/**
Зберігає нейронну мережу як набір масивів: кількість шарів
кількість нейронів в кожному шарі
кожен шар як масив нейронів
@ param String fileToSave - шлях до файлу, розширення якого net
*/void SaveNet (String fileToSave)
{fileName=fileToSave; .toLowerCase (); (! fileName.endsWith ( ))
{n=fileName.length ();=fileName.substring (0, n) + raquo ;;
} [] sloi=new int [layers + 6]; [0]=in; [1]=subS; (int i=0; i lt; subS; i ++)
{[i + 2]=sub [i];
} [2 + subS]=out; [3 + subS]=stolbcov; [4 + subS]=strok; [5 + subS]=funkciya;
{outNet=new ObjectOutputStream (new FileOutputStream (fileName)) ;. writeObject (sloi); (int i=0; i lt; layers; i ++)
{= (Layer) massivLayers.get (i) ;. writeObject (l);
}. close ();
} (Exception e)
{. printStackTrace ();
}
}
/**
Відображає інформацію про кількість нейронів під воходном шарі
@ return число нейронів
*/int getInputLayer ()
{= (Layer) massivLayers.get (0); tmp=l...