资源简介
深度学习领域,dbn网络的训练代码,已经证实能够正常使用,用于matlab仿真专用
代码片段和文件信息
function rbm = rbmtrain(rbm x opts)
assert(isfloat(x) ‘x must be a float‘);
assert(all(x(:)>=0) && all(x(:)<=1) ‘all data in x must be in [0:1]‘);
m = size(x 1);
numbatches = m / opts.batchsize;
assert(rem(numbatches 1) == 0 ‘numbatches not integer‘);
for i = 1 : opts.numepochs
kk = randperm(m);
err = 0;
for l = 1 : numbatches
batch = x(kk((l - 1) * opts.batchsize + 1 : l * opts.batchsize) :);
v1 = batch;
h1 = sigmrnd(repmat(rbm.c‘ opts.batchsize 1) + v1 * rbm.W‘);
v2 = sigmrnd(repmat(rbm.b‘ opts.batchsize 1) + h1 * rbm.W);
h2 = sigm(repmat(rbm.c‘ opts.batchsize 1) + v2 * rbm.W‘);
c1 = h1‘ * v1;
c2 = h2‘ * v2;
rbm.vW = rbm.momentum * rbm.vW + rbm.alpha * (c1 - c2) / opts.batchsize;
rbm.vb = rbm.momentum * rbm.vb + rbm.alpha * sum(v1 - v2)‘ / opts.batchsize;
rbm.vc = rbm.momentum * rbm.vc + rbm.alpha * sum(h1 - h2)‘ / opts.batchsize;
rbm.W = rbm.W + rbm.vW;
rbm.b = rbm.b + rbm.vb;
rbm.c = rbm.c + rbm.vc;
err = err + sum(sum((v1 - v2) .^ 2)) / opts.batchsize;
end
disp([‘epoch ‘ num2str(i) ‘/‘ num2str(opts.numepochs) ‘. Average reconstruction error is: ‘ num2str(err / numbatches)]);
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1401 2020-09-26 16:52 rbmtrain.m
相关资源
- 磷虾群优化算法 (Krill herd optimizati
- 基于人工势场法做的matlab路径规划算
- 无线传感器网络分簇路由算法的matl
- matlab求解图像灰度梯度
- Dollar的人体行为识别的代码(cuboids
- PCA SVM 程序
- libsvm SVM分类器
- 剪切波变换 (shearlet transform)
- 稀疏表示分类算法SRC在ORL人脸库上的
-
context-aware-saliency-detection 论文<
- matlab对一个混合灵敏度的系统进行H无
- matlab的SIFT算法程序
- 非线性算法合集(nonlinear algorithm)
- 微电网下逆变器PI环控制
- PSO SampEn ApproxiEN RVM PSO:粒子群优化算
- LTE_A_PUSCH LTE上行双用户matlab仿真代码
- 基于adaboost和深度学习网络的人脸表情
- 用于大气辐射传输模型modtran5的matla
- matlab的libsvm3.18工具箱
-
simuli
nk单相光伏并网系统 - 《MATLAB小波分析超级学习手册》随书
- 《MATLAB信号处理超级学习手册》随书
- matlab的随机子空间算法
- 基于平方谱和四次方谱的载频估计
- 结合全局-局部图像对比度增强的程序
- 5th WENO Matlab Example 计算流体力学 五阶
- FCM
- 永磁同步发电机的控制simulik仿真图
-
matlab/simuli
nk仿真的无刷直流电机( - matlab编写的船舶动力定位PID控制函数
评论
共有 条评论