我想实现高斯RBM.For,我想使data.my数据的零均值和单位方差是MNIST dataset.The数据集,并从以下链接跟随。
访问http://www.cs.toronto.edu/~hinton/code/makebatches.m
所以我在下面的way.But中实现了,我的数据在用标准差划分数据后变成了NAN。
for epoch = epoch:maxepoch,
fprintf(1,'epoch %d \r',epoch);
errsum=0;
for batch = 1:numbatches,
fprintf(1,'epoch %d batch %d \r',epoch,batch); 正阶段开始百分比
data = batchdata(:,:,batch);%零均值和单位方差
data_mean = mean(data,1);
data=bsxfun(@minus,data,data_mean);
data_std = std(data1,[],1);
data=bsxfun(@rdivide,data,data_std);我用一小部分examples.It works尝试了一下,well.What将成为NAN的原因。
如何摆脱这一点,使高斯输入的均值和单位方差为零。
发布于 2014-07-12 14:36:14
我建议在开始GBRBM培训之前对数据的均值和方差进行标准化。这将使您能够在MATLAB workspace中手动检查batchdata变量。在训练GBRBM时,当我的学习率太高时,我经常将NaN视为训练/验证错误。将学习率设置为低于或等于0.001应该会有所帮助。
发布于 2013-12-26 04:05:16
您似乎在"data_std = ...“中使用了一个未定义的变量"data1”。代码,而不是“数据”。
https://stackoverflow.com/questions/20169870
复制相似问题