icemeteor 发表于 2007-12-11 22:21:17

请问如何让子任务的优化初值复原

我做基于神经网络的CSSO算法时,刚开始子任务优化会收敛到局部最优值。下一轮优化时,子任务的搜索还是从这个局部最优开始搜索,导致最后结果不理想。此后神经网络已经很精确了,但每一轮优化的搜索过程还是在这个局部最小附近,如果这时停下来,重新设定初值,则可以很快收敛到全局最优。不知道在哪里设置可以让子任务每次执行时的初值由我的一个公式给定,哪怕是常数也好。
另外我选的优化算法是NLPQL,不知道其他算法会不会好一些。
谢谢各位大侠:handshake

CIDO 发表于 2007-12-12 08:48:44

有一个不保存最优值的选项

icemeteor 发表于 2007-12-12 15:13:00

谢谢版主,也许是我没说清楚
我要的不是清除每次的最优值,是想每次优化自动重设初值。

strongsailor 发表于 2007-12-12 16:29:49

这个要用到API的命令,你这个初值是变化的么?

icemeteor 发表于 2007-12-12 18:30:50

我想通过一个公式给出,一个常值也行

strongsailor 发表于 2007-12-12 20:53:01

api均可完成此操作,你将你的desc文件贴上来,我给你写进去

icemeteor 发表于 2007-12-12 22:44:54

经过摸索,搞定了
在task plan 那里加了个Tcl block,写上 api_SetParameterValue x1 0;
多谢上面几位:handshake

strongsailor 发表于 2007-12-13 10:40:26

:victory:
页: [1]
查看完整版本: 请问如何让子任务的优化初值复原