[clear;clc;
train_x=load(' f:\P.txt ');
train_x=train_x';
[y1,ps] = mapminmax(train_x);
ps.ymin = 0;
[y1,ps] = mapminmax(train_x,ps)
train_x=double(y1);
%归一化处理数据P,P变为0-1之间,并赋值给y1;
train_y=load(' f:\T.txt');
train_y=double(train_y');
test_x=load(' f:\P_test.txt');
test_x=double(test_x');
[y2,ps] = mapminmax(test_x);
ps.ymin = 0;
[y2,ps] = mapminmax(test_x,ps)
test_x=y2;
test_y=load(' f:\T_test.txt');
test_y=double(test_y');
rand('state',0)
%train dbn
%对DBN的初始化
%除了输入层之外有两层,每层100个神经元
%即为两个受限玻尔兹曼机
dbn.sizes = [100 100];
%训练次数
opts.numepochs = 100;
%每次随机的样本数量
opts.batchsize = 5;
%更新方向,目前不知道有什么用
opts.momentum = 0;
%学习速率
opts.alpha = 0.2;
dbn =dbnsetup(dbn,train_x, opts);%建立DBN
dbn = dbntrain(dbn,train_x, opts);%训练DBN
%至此,已完成了DBN的训练
%将DBN训练得到的数据转化为NN的形式
nn = dbnunfoldtonn(dbn,5);
%设置NN的阈值函数为Sigmoid函数
nn.activation_function = 'softmax';
opts.numepochs = 3;
opts.batchsize =5;
[nn,L] = nntrain(nn,train_x, train_y,opts);
[er, bad] = nntest(nn, test_x,test_y);
code]
2018-3-25 09:08 上传
点击文件名下载附件
6.54 KB, 下载次数: 36
P.txt
2018-3-25 09:08 上传
点击文件名下载附件
595 Bytes, 下载次数: 23
P_test.txt
2018-3-25 09:08 上传
点击文件名下载附件
2.33 KB, 下载次数: 26
T.txt
2018-3-25 09:08 上传
点击文件名下载附件
220 Bytes, 下载次数: 19
T_test.txt