亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cpnet.cpp

?? 神經(jīng)網(wǎng)絡(luò):用感知規(guī)則進行感知。。來自網(wǎng)上的代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	MaxT = abs(Target[0]);
	for(int i = 0; i < target_num; ++i) {
		if(abs(Target[i]) > MaxT) {
			MaxT = abs(Target[i]);
		}
	}
	if(MaxT > 1) {
		for(i = 0; i < target_num; ++i) {
			Target[i] /= MaxT;
		}
	}
}

// denormalize target vector
void CPnet::DeNormalizeTarget() {
	if(MaxT > 1) {
		for(int i = 0; i < target_num; ++i) {
			Target[i] *= MaxT;
		}
	}
}

// compute weighted sum for the current neuron
float CPnet::ComputeWeightedSum( float *Input ) {
	float sum = 0.0f;
	for(int i = 0; i < input_num; ++i) {
		sum += Input[i]*Weight[i];
	}
	return sum;
}

// function for training process
void CPnet::Train() {
    float net;
	int first_index = 0, last_index = input_num;
	bool out;
	for(int i = 0; i < neuron_num; ++i) {
		for(int j = first_index, k = 0; j < last_index; ++j, ++k) {
			input[k] = Input[j];
			if(eAnimType != DEFAULT) {
				cout << Input[j];
				if (j < last_index - 1) {
					cout << ", ";
				}
			}
		}
		net = ComputeWeightedSum(input) + (-1)*threshold;
		if (net>0)
			out = 1;
		else if (net <= 0)
			out = 0;

		Output[i] = out;

		if(eAnimType != DEFAULT) {
			cout << " -> " << out << endl;
			if(eAnimType == ANIM_T3) {
				WAIT(0.1*SECOND);
			}
		}

		float d = Target[i];
		j = first_index;
		for(k = 0; j < last_index; ++j, ++k) {
			delta[k] = LEARNING_RATE*(d-out)*Input[j];
			Weight[k] += delta[k];
		}
		threshold -= (d-out);

		first_index = j;
		last_index += input_num;
	}
	if(bNeuralNetLoaded) {
		bNewModifications = true;
	}
}
	
// function for testing results after training	
void CPnet::Run() {
    float net;
	int first_index = 0, last_index = input_num;
	bool out;
	for(int i = 0; i < neuron_num; ++i) {
		WAIT(0.6*SECOND);
		for(int j = first_index, k = 0; j < last_index; ++j, ++k) {
			input[k] = Input[j];
			cout << Input[j];
			if (j < last_index - 1) {
				cout << ", ";
			}
		}
		net = ComputeWeightedSum(input) + (-1)*threshold;
		if (net>0) {
			out = 1;
		}
		else if (net <= 0) {
			out = 0;
		}

		cout << " -> " << out << endl;

		first_index = j;
		last_index += input_num;
	}
}

// Training Neural Net
void CPnet::TrainNetwork(void) {
	cout << "\nTraining net..." << endl;
	for(int i=0; i<CPN_ITER; ++i) {
		Train();
		if(eAnimType == ANIM_T1 || eAnimType == ANIM_T3) {
			cout << "\nnumber of iterations = " << i + 1 << endl << endl ;
			WAIT(0.3 * SECOND);
		}
		else if(eAnimType == ANIM_T2) {
			cout << "\nnumber of iterations = " << i + 1 << endl << endl;
			WAIT(0.3 * SECOND);
			if (i < CPN_ITER - 1) {
				CLEAR_SCREEN();
			}
		}
		if(eAnimType != DEFAULT && i < CPN_ITER - 1) {
			cout << "\nTraining net..." << endl;
		}
	}
	bNeuralNetTrained = true;
	WAIT(1*SECOND);
	cout << "\n\nTraining completed,";
	ComputeAverageError();
	if (fAverageError <= MIN_ACCURACY) {
		cout << "the learning process was successful!" << endl;
		WAIT(0.6*SECOND);
		cout << "\nNext step: Testing\n\n" << endl;
	} else {
		cout << "learning unsuccessful." << endl;
	}
	UpdateScreen();
}

// computes average error between
// target vector and ouput vector
void CPnet::ComputeAverageError() {
	float sum = 0.0f;
	for(int i = 0; i < target_num; ++i) {
		sum += abs(Target[i] - Output[i]);
	}
	fAverageError = sum/target_num;
}

// Tests the current Neural Net with inputs
void CPnet::TestNetwork(void) {
	cout << "\nTesting \"" << szNeuralNetName << "\" function..." << endl;
	WAIT(0.5*SECOND);
	cout << "\nTest results" << endl;
	Run();
	WAIT(1*SECOND);
	cout << "\nTest completed!" << endl;
	UpdateScreen();
}

// Test the Neural with the selected patterns
void CPnet::SelectiveTest( int pattern_num ) {
	float net;
	int first_index = 0, last_index = input_num;
	bool out;
	int nNumOfInputs = input_num * pattern_num;
	float *Input = new float[nNumOfInputs];
	for(int i = 0; i < nNumOfInputs; ++i) {
		cout << "input[" << i << "] = ";
		cin >> Input[i];
		if ( input_num > 1 && !((i + 1) % input_num)) {
			cout << endl;
		}
		WAIT(0.5*SECOND);
	}

	CLEAR_SCREEN();
	WAIT(0.5*SECOND);
	cout << "\nTesting \"" << szNeuralNetName << "\" function..." << endl;
	WAIT(0.5*SECOND);

	for(i = 0; i < pattern_num; ++i) {
		for(int j = first_index, k = 0; j < last_index; ++j, ++k) {
			input[k] = Input[j];
			cout << Input[j];
			if (j < last_index - 1) {
				cout << ", ";
			}
		}
		net = ComputeWeightedSum(input) + (-1)*threshold;
		if (net>0)
			out = 1;
		else if (net <= 0)
			out = 0;

		cout << " -> " << out << endl;
		WAIT(0.5*SECOND);
		first_index = j;
		last_index += input_num;
	}
	cout << "\nTest completed!" << endl;
	delete Input;
}

void CPnet::UpdateScreen() {
	cout << "Press any key to continue...";
	getch();
	CLEAR_SCREEN();
}

// checks to see if a file or directory exist
// in the current hard drive
bool CPnet::fExist( char* filepath ) {
    WIN32_FIND_DATA file;
    HANDLE hFile;
    if (( hFile = FindFirstFile( filepath, &file ))  
         == INVALID_HANDLE_VALUE ) {
          return false;
    }
    return true;
}

// saves current neural net data before proceding to a new step
void CPnet::SaveCurrentData() {
	if(!bNeuralNetLoaded || (bNeuralNetLoaded && bNewModifications)) {
		if(bNeuralNetCreated && !bNeuralNetSaved) {
			cout << "\nBefore continuing,do you want to save the current Neural Net data?\n"
				<< "Yes(y) No(n): ";
			char response;
			cin >> response;
			response = tolower(response);
			if(response == 'y') {
				SaveNet();
				cout << "The Neural Net was saved successfuly!" << endl;
				UpdateScreen();
			}
		}
	}
}

// Save Neural Net variables to a file
void CPnet::SaveNet(void) {
	FILE *fw = fopen(szNeuralNetName,"w");
	if(!fw) {
		perror(szNeuralNetName);
	}
	// saving input number
	fprintf(fw, "%d\n", input_num);
	// saving neuron number
	fprintf(fw, "%d\n", neuron_num); 
	// saving max input value
	fprintf(fw, "%f\n", Max); 
	// saving max target value
	fprintf(fw, "%f\n", MaxT); 
	// saving the inputs
	total_input_num = input_num * neuron_num;
	for(int i = 0; i < total_input_num; ++i) {
		fprintf(fw, "%f ", Input[i]);
		if (i > 0 && i < total_input_num - 1 && !((i + 1) % 8)) {
			putc('\n', fw);
		}
	}
	// saving the threshold
	fprintf( fw, "\n%f\n", threshold );
	// saving the targets
	for(i = 0; i < target_num; ++i) {
		fprintf(fw, "%f ", Target[i]);
	}
	putc('\n', fw);
	// saving the weights
	for(i = 0; i < input_num; ++i) {
		fprintf(fw, "%f ", Weight[i]);
		if (i > 0 && i < input_num - 1 && !((i + 1) % 8)) {
			putc('\n', fw);
		}
	}
	fflush(fw);
	fclose(fw);

	bNeuralNetSaved = true;
}

// Load Neural Net variables from a file
void CPnet::LoadNet(void) {
	FILE *fw = fopen(szNeuralNetName,"r");
	if(!fw) {
		perror(szNeuralNetName);
	}
	// loading input number
	fscanf(fw, "%d", &input_num);
	// loading neuron number
	fscanf(fw, "%d", &neuron_num);
	// loading max input value
	fscanf(fw, "%f", &Max);
	// loading max target value
	fscanf(fw, "%f", &MaxT);
	// loading the Inputs
	if(Input != NULL) {
		delete Input;
	}
	if(input != NULL) {
		delete input;
	}
	if(Output != NULL) {
		delete Output;
	}
	if(Target != NULL) {
		delete Target;
	}
	if(delta != NULL) {
		delete delta;
	}
	bNeuralNetTrained = false;
	total_input_num = input_num * neuron_num;
	Input = new float[total_input_num];
	if(!Input) {
		std::cerr << "Error while allocating memory for inputs.\n";
	}
	input = new float[input_num];
	if(!input) {
		std::cerr << "Error while allocating memory for temporary inputs variable.\n";
	}
	Target = new float[neuron_num];
	if(!Target) {
		std::cerr << "Error while allocating memory for targets.\n";
	}
	Output = new float[neuron_num];
	if(!Output) {
		std::cerr << "Error while allocating memory for outputs.\n";
	}
	delta = new float[neuron_num];
	if(!delta) {
		std::cerr << "Error while allocating memory for delta.\n";
	}
	// loading the inputs
	for(int i = 0; i < total_input_num; ++i) {
		fscanf(fw, "%f", &Input[i]);
	}
	// loading the threshold
	fscanf(fw, "%f", &threshold);
	// loading the targets
	for(i = 0; i < neuron_num; ++i) {
		fscanf(fw, "%f ", &Target[i]);
	}
	// loading the weights
	if(Weight != NULL) {
		delete Weight;
	}
	Weight = new float[input_num];
	if(!Weight) {
		std::cerr << "Error while allocating memory for weights.\n";
	}
	for(i = 0; i < input_num; ++i) {
		fscanf(fw, "%f", &Weight[i]);
	}
	target_num = neuron_num;
	bNeuralNetCreated = true;
	bNeuralNetLoaded = true;
	bNewModifications = false;
	if(Max > 0 && MaxT > 0) {
		bNeuralNetTrained = true;
	}
	fclose(fw);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品亚洲乱码伦伦中文| 色屁屁一区二区| 日韩欧美黄色影院| 琪琪久久久久日韩精品| 91麻豆精品国产91久久久久| 欧美bbbbb| 久久综合狠狠综合久久综合88| 久久精品二区亚洲w码| 久久精品视频网| 波多野洁衣一区| 亚洲午夜久久久久中文字幕久| 欧美性三三影院| 寂寞少妇一区二区三区| 中文字幕第一区二区| 在线亚洲高清视频| 麻豆成人久久精品二区三区小说| 一区二区三区免费观看| 欧美视频你懂的| 奇米影视7777精品一区二区| 久久久综合网站| 91麻豆国产自产在线观看| 日韩制服丝袜av| 国产精品丝袜一区| 欧美色图第一页| 国产精品中文字幕一区二区三区| 亚洲精品v日韩精品| 日韩欧美国产小视频| 99麻豆久久久国产精品免费优播| 日韩精品国产精品| 国产精品乱人伦一区二区| 欧美男人的天堂一二区| 国产福利91精品一区| 一区二区三区精品在线观看| 日韩欧美亚洲一区二区| a4yy欧美一区二区三区| 美国毛片一区二区| 中文字幕免费一区| 日韩一区二区三区高清免费看看 | 欧美日韩国产免费一区二区| 精品无人码麻豆乱码1区2区 | 成人黄色软件下载| 亚洲二区在线视频| 国产欧美一区二区三区沐欲| 欧美日韩国产高清一区二区| 粉嫩蜜臀av国产精品网站| 日日骚欧美日韩| 国产精品99久久久久久久vr| 亚洲午夜免费电影| 国产精品视频在线看| 日韩免费高清电影| 欧美自拍偷拍午夜视频| 成人国产精品免费观看动漫| 看电影不卡的网站| 亚洲成人免费在线观看| 国产精品福利av| 久久久三级国产网站| 欧美一卡二卡三卡四卡| 欧美性猛交一区二区三区精品| 成人精品视频网站| 国产伦精品一区二区三区视频青涩 | 国产精品国产三级国产普通话三级 | 欧美性猛交xxxxxx富婆| av男人天堂一区| 福利一区在线观看| 国产在线精品一区二区不卡了 | 亚洲日本在线看| 久久久精品黄色| 日韩精品一区二区三区中文精品| 欧美伊人久久久久久久久影院 | 亚洲免费高清视频在线| 国产精品毛片久久久久久久| 久久精品视频免费| 久久精品一区四区| 欧美精品一区二区三区在线播放| 欧美一区二区三区在线视频| 欧美日韩精品一区二区天天拍小说| 色悠悠亚洲一区二区| 91麻豆6部合集magnet| 99久久er热在这里只有精品15| 风间由美一区二区av101| 高清不卡在线观看| 99在线精品免费| 91在线免费视频观看| 91在线播放网址| 欧美四级电影网| 欧美一区二区在线观看| 欧美精品一区在线观看| 国产精品网曝门| 亚洲欧洲av另类| 亚洲一卡二卡三卡四卡无卡久久 | 色偷偷久久一区二区三区| 99国产一区二区三精品乱码| 欧洲一区二区三区在线| 3d动漫精品啪啪1区2区免费| 日韩精品一区二区三区视频播放| 精品美女一区二区| 国产精品天天看| 亚洲综合小说图片| 蜜桃视频一区二区三区| 精品一区二区国语对白| av中文字幕一区| 欧美日产在线观看| 久久影院电视剧免费观看| 国产视频亚洲色图| 一区二区三区美女视频| 久久精品国产网站| 成人激情免费视频| 欧美挠脚心视频网站| 久久精品夜夜夜夜久久| 亚洲免费色视频| 秋霞午夜av一区二区三区| 国产mv日韩mv欧美| 欧美视频一区二区三区在线观看| 精品人在线二区三区| 国产精品久久久久久久久快鸭| 一区二区三区免费网站| 激情丁香综合五月| 色综合久久中文字幕综合网| 日韩一区二区在线免费观看| 久久久久久久久久久久电影| 一个色妞综合视频在线观看| 久久99国内精品| 欧美午夜一区二区| 国产日韩欧美在线一区| 午夜日韩在线电影| 91亚洲午夜精品久久久久久| 日韩精品一区二区三区swag| 亚洲精品日产精品乱码不卡| 极品少妇xxxx精品少妇偷拍| 欧美在线你懂的| 国产日韩欧美一区二区三区乱码| 首页国产欧美久久| 91麻豆高清视频| 国产欧美一区二区精品仙草咪 | 久久久影视传媒| 亚洲sss视频在线视频| 99久久免费视频.com| 精品捆绑美女sm三区| 亚洲一区影音先锋| 成人午夜激情影院| 久久亚洲私人国产精品va媚药| 亚洲线精品一区二区三区八戒| 不卡一区在线观看| 亚洲激情五月婷婷| 国产精品综合在线视频| 3atv一区二区三区| 一区二区免费视频| 91麻豆国产福利精品| 国产精品乱码一区二区三区软件| 久久99这里只有精品| 777久久久精品| 午夜影视日本亚洲欧洲精品| 欧美性大战xxxxx久久久| 亚洲天堂2016| 99久久精品国产一区二区三区| 国产色一区二区| 国产福利一区二区三区在线视频| 欧美成人三级在线| 蜜桃视频在线观看一区| 欧美一区二区大片| 日本在线不卡视频| 7777精品伊人久久久大香线蕉超级流畅 | 99riav一区二区三区| 欧美国产欧美综合| 成人黄色小视频| 亚洲欧美激情视频在线观看一区二区三区| 高清国产午夜精品久久久久久| 国产片一区二区| 国产成人av福利| 国产精品水嫩水嫩| 色综合天天综合网国产成人综合天| 亚洲天堂a在线| 欧美色综合久久| 视频一区视频二区中文字幕| 欧美一级二级在线观看| 美女一区二区视频| 久久伊人中文字幕| 国产不卡视频在线观看| 国产精品久久久久精k8| 99久久精品久久久久久清纯| 一级精品视频在线观看宜春院| 欧美私人免费视频| 日本欧美一区二区三区乱码| 精品国产自在久精品国产| 国产自产v一区二区三区c| 国产日韩高清在线| 91网站在线播放| 亚洲成人综合网站| 精品国产乱码久久| 成人中文字幕在线| 亚洲免费观看高清完整版在线观看熊| 欧美视频一区二区三区四区| 久久精品国产**网站演员| 国产欧美综合在线观看第十页| 91在线云播放| 五月婷婷色综合| 久久久久久久久久久电影| 精品国产精品网麻豆系列| 成人午夜激情影院| 午夜电影网亚洲视频|