查看完整版本 : 求助:怎么能让神经网络安静的训练?
whqonline
2009-12-15, 09:21
谁知道怎么让网络训练时的那个窗口不弹出来,网络一训练我就干不了别的了,总被窗口挡住,
karl_wang
2009-12-21, 10:19
可以修改:net.trainParam.show=数值,把这个数值修改大一点!根据你精度设置;如100,200.
whqonline
2009-12-29, 09:33
可以修改:net.trainParam.show=数值,把这个数值修改大一点!根据你精度设置;如100,200.
不行的,因为一般训练一个就算是1000步,但是机器比较快的话10左右也会算完,然后就又弹出来了。尤其是突然弹出,会打断已经在输入法中写了一串的字。。。。:(
whqonline
2009-12-29, 09:35
在BP训练时,训练窗口在每次训练的时候总不断的弹出,当程序循环建模时搞的计算机无法使用,现在我找到了问题的根源。
在BP程序调用 train--> feval --> trainscg --> plotperf ,这样一个调用链,解决的地方也就在最后一个函数。我的存放地址是:toolbox\nnet\nnet\nnplot\plotperf.m
里面有一句代码,如下
% Special case 2: Delete plot if zero epochs
if (epoch == 0) | isnan(tr.perf(1))
fig = find_existing_figure;
if (fig) delete(fig);
end
if (nargout) stop = 0; end
return
end
经分析试验得知,其中 if (fig) delete(fig); 的意思是当一次模型完毕,或者当一次模型要开始建立,要先删除原建模时的训练图(当然后期好要再建立一个),这就形成了训练窗口不断更新不断出现的情况,所以,只要把delete(fig) 注释掉就ok了!
经验证,bp训练起来变乖, 不会搞得你总的最下化窗口了。
neu_cnlj
2010-01-08, 14:34
根据楼上的分析,我也查看了plotperf.m文件,也做了上述修改,有几点想说明一下:
1,注释掉 : 70 if (fig), delete(fig); end 后,只能当训练第一次开始,发现已经存在了子那个曲线子窗口,才做删除操作;事实上,在后面的代码中,程序要么建立新窗口(new_figure(name) name是采用的训练函数);
2,建新窗口是因为,当曲线到达goal的时候返回停止训练操作;因此在训练过程中不能按搂主所说不出现窗口;于是我想到在训练结束后,关闭窗口
通过查找有关figure的操作,我写了如下函数,可以满足楼主需要:
function ClosedWindow( WindowName )
%CLOSEDWINDOW Summary of this function goes here
% Detailed explanation goes here
for child=get(0,'children')'
% ...for objects whose type is figure...
if strcmp(get(child,'Name'),WindowName)%'Training with TRAINLM')
close(child);
break
end
endWindowName 是窗口名;就是最后选练结束窗体窗口名;
whqonline
2010-01-12, 10:27
根据楼上的分析,我也查看了plotperf.m文件,也做了上述修改,有几点想说明一下:
1,注释掉 : 70 if (fig), delete(fig); end 后,只能当训练第一次开始,发现已经存在了子那个曲线子窗口,才做删除操作;事实上,在后面的代码中,程序要么建立新窗口(new_figure(name) name是采用的训练函数);
2,建新窗口是因为,当曲线到达goal的时候返回停止训练操作;因此在训练过程中不能按搂主所说不出现窗口;于是我想到在训练结束后,关闭窗口
通过查找有关figure的操作,我写了如下函数,可以满足楼主需要:
function ClosedWindow( WindowName )
%CLOSEDWINDOW Summary of this function goes here
% Detailed explanation goes here
for child=get(0,'children')'
% ...for objects whose type is figure...
if strcmp(get(child,'Name'),WindowName)%'Training with TRAINLM')
close(child);
break
end
endWindowName 是窗口名;就是最后选练结束窗体窗口名;
谢谢你的建议,我会试下的,现在出差中。。。
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.