问题1,当训练好的网络,如果下次想调用,怎么办?
回答: 当然是保存网络。 那么保存网络的核心部分是? 当然是关于神经网络的权值保存的问题了。
解决方案一 很多时候,大部分的回答是: 直接把训练好的net电脑中(如下图)。  登录/注册后可看大图 F8N7T0Z140W_}{{$$@C)_IY.png (13.57 KB, 下载次数: 13) 下载附件 保存到相册 2016-5-15 08:28 上传
这个可以保存整个网络的参数。 下次只需要load 下就可以再次调用网络了。 但是这个方案保存太多不知名的东西,总感觉没得骨。
解决方案二 这个论坛很少谈到,就是直接把权值保存为矩阵,下次调用。 虽然有人问了,但回答的很少。 但解决方法不难,使用MATLAB中的2个函数就可以解决。
步骤如下: 首先训练好网络(默认网络的名字叫net),调用函数formwb, CODE 如下:
wb = formwb(net,net.b,net.iw,net.lw)%将训练好的值转为矩阵
这样你的工作区中就出现了一个wb的矩阵,它就是包括网络的所有权值及阈值!  登录/注册后可看大图 QQ截图20160515084005.png (6.16 KB, 下载次数: 7) 下载附件 保存到相册 2016-5-15 08:34 上传 你可以save一下这个wb矩阵,下次调用。
现在就来说说如何调用这个wb矩阵,方法很简单,用到separatewb函数就可以解决, code如下:
[net.b,net.iw,net.lw] = separatewb(net,wb)%将保存的wb值输入到net的权值中
上面的代码需在train函数前,如下:  登录/注册后可看大图 QQ截图20160515084651.png (3.86 KB, 下载次数: 8) 下载附件 保存到相册 2016-5-15 08:40 上传
这样就可以把之前辛苦训练好的网络呼唤回来了。
问题二【待续。。。】
转载:http://www.ilovematlab.cn/thread-468039-1-1.html
|