📄 ukohonennet.h
字号:
// //////////////////////////////////////////////////////////////////////
// //
// // 作者:LUO Jiancheng
// // 创建日期:2002/11/05
// // 最后修改日期:2003/06/18
// //
// //////////////////////////////////////////////////////////////////////
#ifndef UKohonenNetH
#define UKohonenNetH
#define DEBUG
#include <stdio.h>
#define MAXPATS 2000
#define MAXNEURONSIN 20
#define MAXNEURONS 5
#define MAXEPOCHS 2000
#define ETAMIN .001
class CRasterData;
//---------------------------------------------------------------------------
class TKNPattern
{
friend class KNET;
private:
//double **P;
int NumPatterns;
int *Shuffle;
int SizeVector;
public:
//TKNPattern(int numPatterns, int sizeVector, double **data);
TKNPattern(CRasterData *pData);
~TKNPattern();
public:
// int GetPatterns(); //load pattern form file
int __fastcall Norm(int maxValue);
int GetRandPats(int,int); //random patterns arg1=# of patterns, arg2=dimension
double Query(int,int); //returns P[arg1][arg2]
double QueryR(int,int); //returns P[Shuffle[arg1]][arg2]
void ReShuffle(int N);
protected:
CRasterData *m_pRaster;
};
//---------------------------------------------------------------------------
class KNET
{
private:
double Yout[MAXNEURONS]; // The output layer neurons
double Yin[MAXNEURONSIN]; //The input layer neurons
int YinSize; //input layer dimensions
int YoutSize; //outlayer dimensions
int epoch;
double eta; //The learning rate
double delta_eta; //Amount to change l.r. each epoch
int StochFlg; //Present vectors in rand order if 1
TKNPattern *m_pPattern;
int LoadInLayer(int); //pattern->input layer
double EucNorm(int); //Calc Euclidean distance
int FindWinner(); //get coords of winning neuron
void Train(int);
void AdaptParms(FILE *fid);
public:
double W[MAXNEURONSIN][MAXNEURONS]; // The weight matrix
KNET();
~KNET();
void SetPattern(TKNPattern *);
void SetParms(int, double);
void PrintWeights(FILE *fid);
void PrintWinner();
void RunTrn();
void Run();
unsigned char *Label;
};
//---------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -