C++元编程——BP神经网络初始化

初始化对于神经网络还比较重要,为了实现可扩展的初始化方法,在原有的神经网络上进行了一些小修改,增加了可扩展的方法来对网络进行初始化。话不多说,上代码。下面是试验代码(用到了boost的timer进行训练时间计算):

#include 
#include 
#include 

#include 

#include "bp.hpp"
#include "activate_function.hpp"

int main(int argc, char** argv) 
{
	int i_loop_num = 1;
	
	using net_type = net;					// 用nadam优化的ReLu激活函数bp神经网络类型定义
	net_type n;		
	net_type::ret_type& mt_delta = n.get_delta();			// 引用,这样就永远不需要复制了
	int i_max_repeat_count = 0;
	double d_pre_max = 0.0;
	double d_max = -1 * DBL_MAX;
	double d_precious = 0.005;
	bool bb = false;
	boost::timer tmr;
	for (double i = 0; ; i+=1) 
	{
		double d_max_error_j = 0.1;
		for (double j = 0.1; j < 0.6; j+= d_precious)
		{
				double d_out = j;
				net_type::ret_type mt_expected(

你可能感兴趣的:(元编程学习实践,c++,神经网络,算法)