📄 neuralnetwork.h
字号:
// NeuralNetwork.h: interface for the NeuralNetwork class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_NEURALNETWORK_H__FAE72EAF_7576_449C_BD7F_771F57FCFB53__INCLUDED_)
#define AFX_NEURALNETWORK_H__FAE72EAF_7576_449C_BD7F_771F57FCFB53__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define max_layer 3 //网络层数
#define max_node 30 //层中最大的节点数
#define max_sample 45//最大样本数
#define NUM_HIDDEN 10//最大样本数
class NeuralNetwork
{
public:
int sample_num_temp;
double data_norm_temp[45][45];
double data_out_temp[45];
GetBinary();
double min[10][2];
int data_out_test[10];
int test_character_num;
int test_num;
double data_norm_test[10][45];
int epoch;
void normnofile();
double right_ratio;
CString LoadInfo(CString filename, int num);
int output_num_test;
int character_num_test;
int sample_num_test;
BOOL GetTestData(CString filename);
void LoadDatanorm(CString filename);
BOOL SaveDatanormAsFile(CString filename);
int output_com[45];
output_combine();
void feed_muta();
train();
int number_sample;
Init_weight(double a, double b);
BOOL SaveWeightAsFile(CString file_w1,CString file_w2);
BOOL LoadWeight(CString file_w1,CString file_w2);
void feed();
double err[max_sample];//计算每组样本的输出误差,均方差
double err_sum;//总的误差
double err_sum_muta[10];//总的误差
double mrand(double a,double b);
double sigmoid(double input);
NeuralNetwork();
virtual ~NeuralNetwork();
int number_input;//输入层节点数
int number_hidden;//隐层节点数
int number_output;//输出层节点数
double output_of_output[max_sample][max_node];//输出层节点的输出
double output_of_output_muta[max_sample][max_node][10];//输出层节点的输出
double weight_1[max_node][max_node];//权值
double weight_2[max_node][max_node];//权值
double weight_1_muta[max_node][max_node][10];//权值
double weight_2_muta[max_node][max_node][10];//权值
int count_of_correct_test;//测试正确样本数量
double data_out_binary[45][10];
MinDis();
datapretreat();
norm(CString filename);
Getdata(CString filename);
void Empty();
int sample_num;//样本数
int character_num;//原始属性个数
int output_num;//输出神经元个数
int treated_char_num;//处理后属性个数;
double data_file[45][45];//原始文件中的数据,包括输入和输出
double data_in[45][45];//输入数据;
double data_out[45];//输出数据
double data_norm[45][45];//归一化后数据
double max_out;//输出的最大数
int total_training_epoch;//CSA训练步骤
double alpha;//变异因子
void Clonal_Muta();
double max_pos[2];//记录亲和力最大的抗体的亲和力以及位置max_pos[0]为最大值,max[1]为最大值位置
};
#endif // !defined(AFX_NEURALNETWORK_H__FAE72EAF_7576_449C_BD7F_771F57FCFB53__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -