您的位置:首页 > 编程语言

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

2013-08-04 20:57 330 查看
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
);

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐