<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    學海拾遺

    生活、技術、思想無處不在學習
    posts - 52, comments - 23, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    JOONE(Java Object-Oriented Network Engine)使用初探

    Posted on 2007-09-30 16:03 tanzek 閱讀(5989) 評論(2)  編輯  收藏 所屬分類: 技術學習
    ??1 /*
    ??2 ?*?JOONE?-?Java?Object?Oriented?Neural?Engine
    ??3 ?*? http://joone.sourceforge.net
    ??4 ?*
    ??5 ?*?XOR_using_NeuralNet.java
    ??6 ?*
    ??7 ? */

    ??8 package ?study;
    ??9
    ?10 import ?org.joone.engine. * ;
    ?11 import ?org.joone.engine.learning. * ;
    ?12 import ?org.joone.io. * ;
    ?13 import ?org.joone.net. * ;
    ?14 import ?java.util.Vector;
    ?15
    ?16 public ? class ?XOR_using_NeuralNet? implements ?NeuralNetListener? {
    ?17 ???? private ?NeuralNet????????????nnet? = ? null ;
    ?18 ???? private ?MemoryInputSynapse??inputSynapse,?desiredOutputSynapse;
    ?19 ???? private ?MemoryOutputSynapse?outputSynapse;
    ?20 ????LinearLayer????input;
    ?21 ????SigmoidLayer?hidden,?output;
    ?22 ???? boolean ?singleThreadMode? = ? true ;
    ?23 ????
    ?24 ???? // ?XOR?input
    ?25 ???? private ? double [][]????????????inputArray? = ? new ? double [][]? {
    ?26 ???????? { 0.0 ,? 0.0 } ,
    ?27 ???????? { 0.0 ,? 1.0 } ,
    ?28 ???????? { 1.0 ,? 0.0 } ,
    ?29 ???????? { 1.0 ,? 1.0 }
    ?30 ????}
    ;
    ?31 ????
    ?32 ???? // ?XOR?desired?output
    ?33 ???? private ? double [][]????????????desiredOutputArray? = ? new ? double [][]? {
    ?34 ???????? { 0.0 } ,
    ?35 ???????? { 1.0 } ,
    ?36 ???????? { 1.0 } ,
    ?37 ???????? { 0.0 }
    ?38 ????}
    ;
    ?39 ????
    ?40 ???? /**
    ?41 ?????*? @param ?args?the?command?line?arguments
    ?42 ????? */

    ?43 ???? public ? static ? void ?main(String?args[])? {
    ?44 ????????XOR_using_NeuralNet?xor? = ? new ?XOR_using_NeuralNet();
    ?45 ????????
    ?46 ????????xor.initNeuralNet();
    ?47 ????????xor.train();
    ?48 ????????xor.interrogate();
    ?49 ????}

    ?50 ????
    ?51 ???? /**
    ?52 ?????*?Method?declaration
    ?53 ????? */

    ?54 ???? public ? void ?train()? {
    ?55 ????????
    ?56 ???????? // ?set?the?inputs
    ?57 ????????inputSynapse.setInputArray(inputArray);
    ?58 ????????inputSynapse.setAdvancedColumnSelector( " 1,2 " );
    ?59 ???????? // ?set?the?desired?outputs
    ?60 ????????desiredOutputSynapse.setInputArray(desiredOutputArray);
    ?61 ????????desiredOutputSynapse.setAdvancedColumnSelector( " 1 " );
    ?62 ????????
    ?63 ???????? // ?get?the?monitor?object?to?train?or?feed?forward
    ?64 ????????Monitor?monitor? = ?nnet.getMonitor();
    ?65 ????????
    ?66 ???????? // ?set?the?monitor?parameters
    ?67 ????????monitor.setLearningRate( 0.8 );
    ?68 ????????monitor.setMomentum( 0.3 );
    ?69 ????????monitor.setTrainingPatterns(inputArray.length);
    ?70 ????????monitor.setTotCicles( 5000 );
    ?71 ????????monitor.setLearning( true );
    ?72 ????????
    ?73 ???????? long ?initms? = ?System.currentTimeMillis();
    ?74 ???????? // ?Run?the?network?in?single-thread,?synchronized?mode
    ?75 ????????nnet.getMonitor().setSingleThreadMode(singleThreadMode);
    ?76 ????????nnet.go( true );
    ?77 ????????System.out.println( " Total?time=? " + (System.currentTimeMillis()? - ?initms) + " ?ms " );
    ?78 ????}

    ?79 ????
    ?80 ???? private ? void ?interrogate()? {
    ?81 ???????? // ?set?the?inputs
    ?82 ????????inputSynapse.setInputArray(inputArray);
    ?83 ????????inputSynapse.setAdvancedColumnSelector( " 1,2 " );
    ?84 ????????Monitor?monitor = nnet.getMonitor();
    ?85 ????????monitor.setTrainingPatterns( 4 );
    ?86 ????????monitor.setTotCicles( 1 );
    ?87 ????????monitor.setLearning( false );
    ?88 ????????MemoryOutputSynapse?memOut? = ? new ?MemoryOutputSynapse();
    ?89 ???????? // ?set?the?output?synapse?to?write?the?output?of?the?net
    ?90 ????????
    ?91 ???????? if (nnet != null )? {
    ?92 ????????????nnet.addOutputSynapse(memOut);
    ?93 ????????????System.out.println(nnet.check());
    ?94 ????????????nnet.getMonitor().setSingleThreadMode(singleThreadMode);
    ?95 ????????????nnet.go();
    ?96 ????????????
    ?97 ???????????? for ( int ?i = 0 ;?i < 4 ;?i ++ )? {
    ?98 ???????????????? double []?pattern? = ?memOut.getNextPattern();
    ?99 ????????????????System.out.println( " Output?pattern?# " ? + ?(i + 1 )? + ? " = " ? + ?pattern[ 0 ]);
    100 ????????????}

    101 ????????????System.out.println( " Interrogating?Finished " );
    102 ????????}

    103 ????}

    104 ????
    105 ???? /**
    106 ?????*?Method?declaration
    107 ????? */

    108 ???? protected ? void ?initNeuralNet()? {
    109 ????????
    110 ???????? // ?First?create?the?three?layers
    111 ????????input? = ? new ?LinearLayer();
    112 ????????hidden? = ? new ?SigmoidLayer();
    113 ????????output? = ? new ?SigmoidLayer();
    114 ????????
    115 ???????? // ?set?the?dimensions?of?the?layers
    116 ????????input.setRows( 2 );
    117 ????????hidden.setRows( 3 );
    118 ????????output.setRows( 1 );
    119 ????????
    120 ????????input.setLayerName( " L.input " );
    121 ????????hidden.setLayerName( " L.hidden " );
    122 ????????output.setLayerName( " L.output " );
    123 ????????
    124 ???????? // ?Now?create?the?two?Synapses
    125 ????????FullSynapse?synapse_IH? = ? new ?FullSynapse();???? /* ?input?->?hidden?conn.? */
    126 ????????FullSynapse?synapse_HO? = ? new ?FullSynapse();???? /* ?hidden?->?output?conn.? */
    127 ????????
    128 ???????? // ?Connect?the?input?layer?whit?the?hidden?layer
    129 ????????input.addOutputSynapse(synapse_IH);
    130 ????????hidden.addInputSynapse(synapse_IH);
    131 ????????
    132 ???????? // ?Connect?the?hidden?layer?whit?the?output?layer
    133 ????????hidden.addOutputSynapse(synapse_HO);
    134 ????????output.addInputSynapse(synapse_HO);
    135 ????????
    136 ???????? // ?the?input?to?the?neural?net
    137 ????????inputSynapse? = ? new ?MemoryInputSynapse();
    138 ????????
    139 ????????input.addInputSynapse(inputSynapse);
    140 ????????
    141 ???????? // ?The?Trainer?and?its?desired?output
    142 ????????desiredOutputSynapse? = ? new ?MemoryInputSynapse();
    143 ????????
    144 ????????TeachingSynapse?trainer? = ? new ?TeachingSynapse();
    145 ????????
    146 ????????trainer.setDesired(desiredOutputSynapse);
    147 ????????
    148 ???????? // ?Now?we?add?this?structure?to?a?NeuralNet?object
    149 ????????nnet? = ? new ?NeuralNet();
    150 ????????
    151 ????????nnet.addLayer(input,?NeuralNet.INPUT_LAYER);
    152 ????????nnet.addLayer(hidden,?NeuralNet.HIDDEN_LAYER);
    153 ????????nnet.addLayer(output,?NeuralNet.OUTPUT_LAYER);
    154 ????????nnet.setTeacher(trainer);
    155 ????????output.addOutputSynapse(trainer);
    156 ????????nnet.addNeuralNetListener( this );
    157 ????}

    158 ????
    159 ???? public ? void ?cicleTerminated(NeuralNetEvent?e)? {
    160 ????}

    161 ????
    162 ???? public ? void ?errorChanged(NeuralNetEvent?e)? {
    163 ????????Monitor?mon? = ?(Monitor)e.getSource();
    164 ???????? if ?(mon.getCurrentCicle()? % ? 100 ? == ? 0 )
    165 ????????????System.out.println( " Epoch:? " + (mon.getTotCicles() - mon.getCurrentCicle()) + " ?RMSE: " + mon.getGlobalError());
    166 ????}

    167 ????
    168 ???? public ? void ?netStarted(NeuralNetEvent?e)? {
    169 ????????Monitor?mon? = ?(Monitor)e.getSource();
    170 ????????System.out.print( " Network?started?for? " );
    171 ???????? if ?(mon.isLearning())
    172 ????????????System.out.println( " training. " );
    173 ???????? else
    174 ????????????System.out.println( " interrogation. " );
    175 ????}

    176 ????
    177 ???? public ? void ?netStopped(NeuralNetEvent?e)? {
    178 ????????Monitor?mon? = ?(Monitor)e.getSource();
    179 ????????System.out.println( " Network?stopped.?Last?RMSE= " + mon.getGlobalError());
    180 ????}

    181 ????
    182 ???? public ? void ?netStoppedError(NeuralNetEvent?e,?String?error)? {
    183 ????????System.out.println( " Network?stopped?due?the?following?error:? " + error);
    184 ????}

    185 ????
    186 }

    187

    評論

    # re: JOONE(Java Object-Oriented Network Engine)使用初探  回復  更多評論   

    2007-12-02 15:39 by longmiaost
    我最近也在研究這個東東,有沒有詳細的說明,或者學習資料!!可否發給我一份longmiaost@126.com

    # re: JOONE(Java Object-Oriented Network Engine)使用初探  回復  更多評論   

    2008-06-23 02:51 by xia fei
    你這過簡單例子,可以說幫了很多人,我早前看過軟件開發的文章,有一個方法叫plagarism programming, 你這例子, 反映了PP原來是很實在。。。。Good Job......
    主站蜘蛛池模板: 国产真人无码作爱免费视频| 日韩亚洲产在线观看| 91制片厂制作传媒免费版樱花| 久久水蜜桃亚洲av无码精品麻豆| 免费可以看黄的视频s色| jizzjizz亚洲日本少妇| 国产猛烈高潮尖叫视频免费| 美女无遮挡拍拍拍免费视频| 亚洲日本一区二区三区在线| 久久高潮一级毛片免费| 亚洲国产成人九九综合| 亚洲成AV人网址| 日本免费xxxx色视频| 永久免费精品影视网站| 亚洲网站在线免费观看| 免费日韩在线视频| 人妻18毛片a级毛片免费看| 亚洲网站免费观看| 中文国产成人精品久久亚洲精品AⅤ无码精品| 一道本不卡免费视频| 亚洲乱码中文字幕小综合| 区久久AAA片69亚洲| 最近免费中文字幕大全视频 | 亚洲视频免费播放| 亚洲国产韩国一区二区| 色妞WWW精品免费视频| 亚洲精品久久久久无码AV片软件| 亚洲色婷婷一区二区三区| 处破痛哭A√18成年片免费| 羞羞视频在线免费观看| 亚洲伊人精品综合在合线| 亚洲精品无码专区在线在线播放 | 日韩免费高清播放器| 亚洲AV无码XXX麻豆艾秋| 久久精品国产亚洲Aⅴ香蕉| 日韩精品无码免费一区二区三区 | 亚洲av无码一区二区三区不卡| 91精品啪在线观看国产线免费| 久久www免费人成看国产片| 最新亚洲人成网站在线观看| 亚洲中文无码mv|