Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-03-21
年龄: 39
帖子: 4
声望力: 0 ![]() |
![]()
谁知道怎么让网络训练时的那个窗口不弹出来,网络一训练我就干不了别的了,总被窗口挡住,
|
![]() |
![]() |
![]() |
#2 |
版主
注册日期: 2008-12-03
年龄: 41
帖子: 43
声望力: 17 ![]() |
![]()
可以修改:net.trainParam.show=数值,把这个数值修改大一点!根据你精度设置;如100,200.
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-03-21
年龄: 39
帖子: 4
声望力: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-03-21
年龄: 39
帖子: 4
声望力: 0 ![]() |
![]()
在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训练起来变乖, 不会搞得你总的最下化窗口了。 |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-11-26
年龄: 42
帖子: 6
声望力: 0 ![]() |
![]()
根据楼上的分析,我也查看了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 是窗口名;就是最后选练结束窗体窗口名; 此帖于 2010-01-08 14:39 被 neu_cnlj 编辑。 原因: 更正错误 |
![]() |
![]() |
![]() |
#6 | |
初级会员
注册日期: 2009-03-21
年龄: 39
帖子: 4
声望力: 0 ![]() |
![]() 引用:
谢谢你的建议,我会试下的,现在出差中。。。 |
|
![]() |
![]() |