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

📄 somtrain.cpp

📁 自組織映射網路(SOM)
💻 CPP
字号:
#include <stdlib.h>

#include <stdio.h>

#include "somneuro.h"



main()

{

	char filename[128];

	int key=1;

	int nb_cycle;

	int i,j,k,n1,n2,n3,N;



	cout<<"Input filename of training data for SOM clustering : ";

	cin>>filename;

	ifstream in1(filename);

//  cout<<"Output filename of category map : ";

//  cin>>filename;

//  ofstream out1(filename);

//	ifstream in1("test.dat");

   	ofstream out1("sommap.dat");

	ofstream out2("somwgt.dat");

	if(!in1){cout<<"Cannot open file! Any key to terminate...";cin>>key;exit(1);}

	cout<<"Input the numeber of cycles:";

	cin>>nb_cycle;

	in1>>n1>>n2>>n3;

        //in1>>n1>>n3;

	if(n2>1)

	{

		cout<<"The number of observed output can't larger than 1! Any key to terminate...";

      		getchar();exit(1);

	}

	f2D Input;

	f1D Output;

	Input.Initialize(n3,n1);

	Output.Initialize(n3);

	for(i=0;i<n3;i++)

	{

		for(j=0;j<n1;j++)in1>>Input.m[i][j];

		in1>>Output.m[i];

	}

  	cout<<" Enter Size of 2-dimensional output Kohonom layer(Size*Size= # of category): ";

	cin>>N;

	SOMNeuroNet SOM;

	SOM.LoadTrainingData(N, Input, Output);



	float convergence,err;

	k=0;

	while(key==1)

	{

		for(i=0;i<nb_cycle;i++)

      		{

      		convergence = SOM.LearningFromBatchData();

         	cout<<i<<endl;

      		}

		cout<<"k="<<k<<" , convergence coefficient="<<convergence<<endl;

   		err=SOM.CalculCategoryMap();

		cout<<"Mis-classification error"<<err<<endl<<endl;

		cout<<"encore? (1/0) ";cin>>key;

		k++;

	}

	SOM.SaveCategoryMap(out1);

	SOM.Save(out2);

	cout<<"any key to terminate...";

   	getchar();

}

⌨️ 快捷键说明

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