使用Matlab 创建C 语言描述的神经网络
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用Matlab创建、训练一个简单的神经网络(使用神经网络来模拟Sin函数),并且将训练好的神经网络转移到AVR微处理器当中。
假设现实中有一个时不变系统?, 现在需要在内存当中模拟这个?系统。问题是这个?系统有一个输入X和一个输出Y并且我们不知道X、Y的关系(可能很很很很很很复杂)。方法是给予系统不同的输入X,观察输出Y。然后根据X,Y训练一个神经网络来代替这个?系统。
首先我们“测量”在不同输入下系统的输出:
x=0:0.1:2*pi;
y=sin(x)+x;
这个就是我们“测量”到的系统的输入和输出关系。有了关系,就好办事。接着启动nftool工具。
注意输入和目标分别为X和Y。
设定隐层神经元的数量,默认为20个,可以修改一下(我把它改为7个)
这里就可以训练网络了。
训练完成后可以查看这个网路到底及格啵。
如果网路合格就导出吧。
接着使用gensim(net, 0.1)命令将网络放在simulink当中,并且将测试数据和示波器替换成输入端口和输出端口。
然后设定代码生成的一些选项:
采样间隔
完成后Ctrl+B构建系统,不过……
居然出错了!经Google大神指点:
使用Matlab创建C语言描述的神经网络2011年1月15日星期六解决方法如下:
单击此处
找到这里:
在上右键选择断开与库的关联。
发现出问题的是这个函数:
删除它,然后将前面的木块修改为
并修复断开的“导线”
改完后Ctrl+B就可以正常生成代码了。
接着来验证下神经网络的正确性。
编译:
输出:
观察:
OK,最后修改一下看看AVR的资源占用情况。