⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bpnet.h

📁 BP神经网络的C++程序,里面有源程序和生成的可执行文件,希望对正在学习的朋友有用!
💻 H
📖 第 1 页 / 共 2 页
字号:
 int clustercount;
 int dimensions_of_signal;
 int number_of_cluster_units;
 int reset_value;
 int resetcount;
 float vigilance_parameter;
 float norm_of_activation_vector;
 float norm_of_input_vector;
 float weight_update_parameter;
 int cluster_champ;
 int clusterange;
 Input_units     *node_in_input_layer;
 Interface_units *node_in_interface_layer;
 Cluster_units   *node_in_cluster_layer;
 void establish_net_topology(void);
 void upload_network(void);
 void transmit_pattern_to_interface(void);
 void transmit_pattern_to_cluster(void);
 void broadcast_output_to_cluster_layer(void);
 void cluster_nodes_compete_for_activation(int train_or_test);
 void compute_norm_of_activation_vector(void);
 void compute_norm_of_input_vector(void);
 void recompute_activation_vector_of_interface_layer(void);
 void update_the_network(void);
 void set_cluster_activation_to_zero(void);
 void savenet(void);
 ART_Topology();
 ~ART_Topology(); // class destructor
};

// Classes which specifies the containers of ART training and test data
class ART_Training_Data : public Data_type
{
  public:
  void determine_sample_number(void);
  void load_data_into_array(void);
  virtual void request_ART_data(int net_no);
};

class ART_Test_Data : public ART_Training_Data
{
        public: void request_ART_data(int net_no);
};

//************************************************************************//
class NeuralA    // class containing the ART1 neural net structure
{                // along with training and testing data
  private:
  ART_Training_Data ART_Train;
  ART_Test_Data * ART_Test;      // the number of test is variable
  int number_of_ART_tests;
  void initialize_ART_training_storage_array(int AN);
  void establish_ART_test_battery_size(void);
  void train_ART_network(int ARTN);
  void test_ART_network(int ANET);
  public:
  ART_Topology ART_Design;
  void construct_ART_network(void);
  void network_training_testing(int TT);
  ~NeuralA();
};
//****************************************************************************//


// This concludes the ART1 section of the program
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

// (Kohonen) Define base class for the Clustering Nodes of
//           the Kohonen Self-Organizing Map

//************************ ATTENTION ************************************
// Note that the Class Kohonen_units will also contain variables and
// functions relevant to the Radial Basis Function Neural Network (RBFN)
//***********************************************************************
class Kohonen_units: public ART_units
{
  public:
  void establish_input_weight_vector_array(void);
  void initialize_inputs_and_weights(void);
  void calculate_sum_square_Euclidean_distance(void);
  void update_the_weights(float learning_rate);
  Kohonen_units(); // default constructor
//*******************************************************
  float transfer_function_width;                 // RBFN
  float Gaussian_transfer_output;                // RBFN
  void execute_Gaussian_transfer_function(void); // RBFN
//*******************************************************
};


// define class and member functions which define Kohonen Topology
class Kohonen_Topology
{
  public:
  int kluster_champ;
  int dimensions_of_signal;
  int maximum_number_of_clusters;
  float max_learning_rate;
  float min_learning_rate;
  float interim_learning_rate;
  Kohonen_units *node_in_cluster_layer;
  void establish_Kohonen_topology(int netuse);
  void kluster_nodes_compete_for_activation(void);
  void update_the_Kohonen_network(int epoch_count, int max_epochs);
  virtual void upload_network(void); // retrieve network from file
  virtual void savenet(void); // save network to file
  Kohonen_Topology();   // class constructor
  ~Kohonen_Topology();  // class destructor
};

// define class and member functions which define training and test data
// storage for the Kohonen Self_Organizing Map

class Kohonen_Training_Data : public ART_Training_Data
{
  public:
  void acquire_net_info(int signal);
  void normalize_data_in_array(void);
  virtual void request_Kohonen_data(int net_no);
};

class Kohonen_Test_Data: public Kohonen_Training_Data
{public: void request_Kohonen_data(int net_no);};


//************************************************************************//
class NeuralK    // class containing the Kohonen neural net structure
{                // along with training and testing data
  private:
  Kohonen_Training_Data Kohonen_Train;
  Kohonen_Test_Data *Kohonen_Test; // number of tests is variable
  int number_of_Kohonen_tests;
  void initialize_Kohonen_training_storage_array(int KN);
  void establish_Kohonen_test_battery_size(void);
  void train_Kohonen_network(int KOHN);
  void test_Kohonen_network(int KNET);
  public:
  Kohonen_Topology Kohonen_Design;
  void construct_Kohonen_network(void);
  void network_training_testing(int TT);
  ~NeuralK();
};
//*************************************************************************//
// This concludes the Kohonen section of the program
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// (Radial Basis Function Network)
// define class and member functions which define Radial Basis Topology

class Radial_Basis_Topology: public Kohonen_Topology
{
 public:
 int number_of_output_units;
 Output_units *node_in_output_layer;
 int activation_function;
 void establish_Radial_Basis_topology(void);
 void establish_activation_function(void);
 void calculate_transfer_function_widths(void);
 void transfer_Gaussian_to_Output_layer(void);
 void upload_network(void); // retrieve network from file
 void savenet(void);
 ~Radial_Basis_Topology();
};

//******************************************************************************
class NeuralR   // class containing the Radial Basis neural net structure
{               // along with training and testing data
  private:
  Training RTrain;                    // file name and dynamic array for training
  Testing *RTests;                    // files containing data to test network
  int number_of_tests;                // number of tests run on the neural net
  void initialize_training_storage_array(int R);
  void establish_test_battery_size(void);
  void train_RBF_neural_network(int RBF);
  void test_neural_network(int RBN);
  public:
  Radial_Basis_Topology RBF_Design;   // specification of radial basis network
  void establish_Radial_Basis_network(void);
  void network_training_testing(int TT);
  ~NeuralR();
};
//******************************************************************************

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// this template class stores the neural networks to a file

template <class Type>
class Storage
{
  public:
  void save_neural_network(Type & NET_Topology);
};

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

class Neural_Window  // this class holds the different types of neural nets
{
  private:
  void establish_network_type(void);

  public:  // user interface
  char neural_network_type;
  int neural_network_number;
  void display_menu_for_net_selection(int NNnum);
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -