【deep learning学习笔记】注释yusugomori的SDA代码 -- Sda.h

SDA的头文件。

数据方面,HiddenLayer和dA共享同样的网络参数(只是参数关联的函数方法不同而已)。虽然HiddenLayer和dA都声明称二级指针,不过其指向的只是一维的数据,只不过每一个数据用指针来指向而已。

接口方面,非常简洁,就三个:预训练、参数微调、模型预测。

代码如下:

class SdA 
{
public:
  	int N;						// the number of training samples
  	int n_ins;					// the number of nodes in input layer
  	int *hidden_layer_sizes;	// the number of nodes in each hidden layer
  	int n_outs;					// the number of nodes in output layer
  	int n_layers;				// the number of hidden layers
  	HiddenLayer **sigmoid_layers;	// the pointer vector for hidden layers
  	dA **dA_layers;				// the same as sigmoid_layers, but different algorithms
  	LogisticRegression *log_layer;	// the output logistic regression layer
  	
  	SdA (
	  	int, 	// N
	  	int, 	// n_ins
	  	int*, 	// hidden_layer_sizes
	  	int, 	// n_outs
	  	int		// n_layers
	  );
  	~SdA();
  	
  	// pretrain the network layer by layer in denosing auto-encoder
  	void pretrain (
	  int*, 	// input 0-1 vector ( N * n_ins )
	  double, 	// the learning rate
	  double, 	// corruption_level for denoising
	  int		// the training epoch
	  );
	// finetune the network by the output labels
  	void finetune (
	  int*, 	// input 0-1 vector ( N * n_ins )
	  int*, 	// the labels for the input samples
	  double, 	// the learning rate
	  int		// the training epoch
	  );
  	void predict (
	  int*, 	// input 0-1 vector ( 1 * n_ins )
	  double*	// the output from logestic regression layer, which is the prediction of networks
	  );
	  
};

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值