DBN深度置信网络的问题 小白求交

有没有大哥会的,有偿讲解都可以
上网找的代码不会用,知道这个代码是输入图片数据的,想自己改一下,但是自己输入的数组,显示矩阵乘法的维度不正确。
function adealData()

clc

clear all

load('adata.mat','train_digitdata','train_targets');

X = train_digitdata;

Y = train_targets;

Xmin = min(X);

Xmax = max(X);

X = bsxfun(@rdivide,bsxfun(@minus,X,Xmin),(Xmax-Xmin));

rbm1 = rbm([784,400]);

rbm1 = checkrbmtrain(@rbmtrain1,rbm1,X,50,0.1);

net_rbm1 = rbm2nnet(rbm1,'up');

h1 = nnetfw(net_rbm1,X);

rbm2 = rbm([400,200]);

rbm2 = checkrbmtrain(@rbmtrain1,rbm2,h1,50,0.1);

net_rbm2 = rbm2nnet(rbm2,'up');

h2 = nnetfw(net_rbm2,h1);

rbm3 = rbm([200,100]);

rbm3 = checkrbmtrain(@rbmtrain1,rbm3,h2,50,0.1);

net_rbm3 = rbm2nnet(rbm3,'up');

h3 = nnetfw(net_rbm3,h2);

rbm4 = rbm([100,50]);

rbm4 = checkrbmtrain(@rbmtrain1,rbm4,h3,50,0.1);

net_rbm4 = rbm2nnet(rbm4,'up');

h4 = nnetfw(net_rbm4,h3);

rbm5 = rbm([50,20]);

rbm5 = checkrbmtrain(@rbmtrain1,rbm5,h4,50,0.1);

net_rbm5 = rbm2nnet(rbm5,'up');

h5 = nnetfw(net_rbm5,h4);

net1 = nnet([784,400,200,100,50,20,10],'softmax');

net1.w{1} = net_rbm1.w{1};

net1.w{2} = net_rbm2.w{1};

net1.w{3} = net_rbm3.w{1};

net1.w{4} = net_rbm4.w{1};

net1.w{5} = net_rbm5.w{1};

net2 = nnettrain(net1,X,Y,1000);

Y= nnetfw(net2,X);

https://blog.csdn.net/kellyroslyn/article/details/82668733