📄 xor_using_helpers.java
字号:
/* * XOR_using_helpers.java * * Created on January 17, 2006, 5:21 PM * * Copyright @2005 by Paolo Marrone and the Joone team * Licensed under the Lesser General Public License (LGPL); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.gnu.org/ * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.joone.samples.engine.helpers;import org.joone.helpers.factory.JooneTools;import org.joone.net.NeuralNet;/** * Example to demonstrate the use of the helpers classes * @author P.Marrone */public class XOR_using_helpers { // XOR input private static double[][] inputArray = new double[][] { {0.0, 0.0}, {0.0, 1.0}, {1.0, 0.0}, {1.0, 1.0} }; // XOR desired output private static double[][] desiredArray = new double[][] { {0.0}, {1.0}, {1.0}, {0.0} }; private static boolean singleThreadMode = true; /** * Creates a new instance of XOR_using_helpers */ public XOR_using_helpers() { } public static void main(String[] args) { try { // Create the network: 3 layers with a logistic output layer NeuralNet nnet = JooneTools.create_standard(new int[]{ 2, 2, 1 }, JooneTools.LOGISTIC);// NeuralNet nnet = JooneTools.load("org/joone/samples/engine/helpers/rxor.snet"); nnet.getMonitor().setSingleThreadMode(singleThreadMode); // Train the network for 5000 epochs, or until rmse reaches 0.01. // Outputs the results every 200 epochs on the stardard output double rmse = JooneTools.train(nnet, inputArray, desiredArray, 5000, 0.01, 200, System.out, false); // Waits in order to avoid the interlacing of the rows displayed try { Thread.sleep(50); } catch (InterruptedException doNothing) { } // Interrogate the network and prints the results System.out.println("Last RMSE = "+rmse); System.out.println("\nResults:"); System.out.println("|Inp 1\t|Inp 2\t|Output"); for (int i=0; i < 4; ++i) { double[] output = JooneTools.interrogate(nnet, inputArray[i]); System.out.print("| "+inputArray[i][0]+"\t| "+inputArray[i][1]+"\t| "); System.out.println(output[0]); } // Test the network and prints the rmse double testRMSE = JooneTools.test(nnet, inputArray, desiredArray); System.out.println("\nTest error = "+testRMSE); } catch (Exception exc) { exc.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -