zoukankan      html  css  js  c++  java
  • 《精通Matlab神经网络》例10-16的新写法

    《精通Matlab神经网络》书中示例10-16,在创建BP网络时,原来的写法是:

      net = newff(minmax(alphabet),[S1 S2],{'logsig' 'logsig'},'traingdx');

    因为运行过程中有提示,自然想改成新写法(参考之前的随笔《MATLAB神经网络函数NEWFF()新旧用法差异》):

      net = newff(alphabet, targets, S1, {'logsig', 'logsig'}, 'traingdx');

         net.divideFcn = '';

    很不幸的是,结局惨不忍睹:

    于是开始对比研究……最终发现,新式写法还需要去掉输入输出的处理函数。

    于是,到目前为止,为了让新式写法等价于旧式写法,在newff()之后还需要添加以下几笔:

      net.divideFcn = '';
      net.inputs{1}.processFcns = {};
      net.outputs{2}.processFcns = {};      % 若有n个隐层,则此处下标为n+1

    【浅析】新式实现中,newff()的默认处理函数有:fixunknowns, removeconstantrows, mapminmax。其中罪魁祸首是mapminmax,因为它把[0,1]的输入数据映射到了[-1,1]区间。而

    我们根据问题的实际情况,即二值图像像素值范围是[0,1],从而使用了定义域也[0,1]的传递函数logsig(),和mapminmax()是不匹配的。

  • 相关阅读:
    要成功先发疯
    情绪ABC理论
    树立和提高威信法
    javaagent
    sonar 使用
    sonar 代码质量管理
    四大思维工具,SWOT、PDCA、DISC、时间管理
    HyperLogLog
    位数组
    git checkout .和git checkout -f的区别;git add . git add -u git add -A的区别
  • 原文地址:https://www.cnblogs.com/xxfcz/p/4494780.html
Copyright © 2011-2022 走看看