`
helloyesyes
  • 浏览: 1304014 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

神经网络开发包joone的功能演示

阅读更多

import java.io.File;

import org.joone.engine.FullSynapse;
import org.joone.engine.LinearLayer;
import org.joone.engine.Monitor;
import org.joone.engine.SigmoidLayer;
import org.joone.engine.learning.TeachingSynapse;
import org.joone.io.FileInputSynapse;
import org.joone.io.FileOutputSynapse;
import org.joone.io.InputSwitchSynapse;
import org.joone.net.NeuralNet;


public class Main {
private NeuralNetnnet = null;
private FileInputSynapse inputSynapse1, inputSynapse2, inputSynapse3;
private FileInputSynapse desiredSynapse1, desiredSynapse2, desiredSynapse3;
// private MemoryOutputSynapse outputSynapse;
private InputSwitchSynapse inputSw, desiredSw;
private static String inputFile = "src/test.txt";

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Main m = new Main();
m.test();
m.train();
}

public void train() {

// get the monitor object to train or feed forward
Monitor monitor = nnet.getMonitor();

// set the monitor parameters
monitor.setLearningRate(0.8);
monitor.setMomentum(0.3);
monitor.setTrainingPatterns(4);
monitor.setTotCicles(1000);
monitor.setLearning(true);
nnet.addNeuralNetListener(new Test());
interrogate();
interrogate();
interrogate();

}

private void interrogate() {
// neuralNet is an instance of NeuralNet
Monitor monitor=nnet.getMonitor();
monitor.setTotCicles(1);
monitor.setLearning(false);
FileOutputSynapse output=new FileOutputSynapse();
// set the output synapse to write the output of the net
output.setFileName("src/xorOut.txt");
// inject the input and get the output
if(nnet!=null) {
nnet.addOutputSynapse(output);
System.out.println(nnet.check());
nnet.start();
monitor.Go();
nnet.join();
}


}

public void test() {
LinearLayerinput = new LinearLayer();
SigmoidLayerhidden = new SigmoidLayer();
SigmoidLayeroutput = new SigmoidLayer();

input.setRows(2);
hidden.setRows(3);
output.setRows(1);

input.setLayerName("inputLayer");
hidden.setLayerName("hiddenLayer");
output.setLayerName("outputLayer");

FullSynapse synapse_IH = new FullSynapse();/* input -> hidden conn. */
FullSynapse synapse_HO = new FullSynapse();/* hidden -> output conn. */

input.addOutputSynapse(synapse_IH);
hidden.addInputSynapse(synapse_IH);

hidden.addOutputSynapse(synapse_HO);
output.addInputSynapse(synapse_HO);

inputSynapse1 = new FileInputSynapse();
inputSynapse2 = new FileInputSynapse();
inputSynapse3 = new FileInputSynapse();



inputSynapse1.setInputFile(new File(inputFile));
inputSynapse1.setName("input1");
inputSynapse1.setAdvancedColumnSelector("1-2");
inputSynapse1.setFirstRow(1);
inputSynapse1.setLastRow(4);

inputSynapse2.setInputFile(new File(inputFile));
inputSynapse2.setName("input2");
inputSynapse2.setAdvancedColumnSelector("1-2");
inputSynapse2.setFirstRow(2);
inputSynapse2.setLastRow(3);

inputSynapse3.setInputFile(new File(inputFile));
inputSynapse3.setName("input3");
inputSynapse3.setAdvancedColumnSelector("1-2");
inputSynapse3.setFirstRow(4);
inputSynapse3.setLastRow(4);

inputSw = new InputSwitchSynapse();
inputSw.addInputSynapse(inputSynapse1);
inputSw.addInputSynapse(inputSynapse2);
inputSw.addInputSynapse(inputSynapse3);

input.addInputSynapse(inputSw);

// The Trainer and its desired output
desiredSynapse1 = new FileInputSynapse();
desiredSynapse2 = new FileInputSynapse();
desiredSynapse3 = new FileInputSynapse();

desiredSynapse1.setInputFile(new File(inputFile));
desiredSynapse1.setName("desired1");
desiredSynapse1.setAdvancedColumnSelector("3");
desiredSynapse1.setFirstRow(1);
desiredSynapse1.setLastRow(4);

desiredSynapse2.setInputFile(new File(inputFile));
desiredSynapse2.setName("desired2");
desiredSynapse2.setAdvancedColumnSelector("3");
desiredSynapse2.setFirstRow(2);
desiredSynapse2.setLastRow(3);

desiredSynapse3.setInputFile(new File(inputFile));
desiredSynapse3.setName("desired3");
desiredSynapse3.setAdvancedColumnSelector("3");
desiredSynapse3.setFirstRow(4);
desiredSynapse3.setLastRow(4);

desiredSw = new InputSwitchSynapse();
desiredSw.addInputSynapse(desiredSynapse1);
desiredSw.addInputSynapse(desiredSynapse2);
desiredSw.addInputSynapse(desiredSynapse3);

TeachingSynapse trainer = new TeachingSynapse();
trainer.setDesired(desiredSw);

// Now we add this structure to a NeuralNet object
nnet = new NeuralNet();

nnet.addLayer(input, NeuralNet.INPUT_LAYER);
nnet.addLayer(hidden, NeuralNet.HIDDEN_LAYER);
nnet.addLayer(output, NeuralNet.OUTPUT_LAYER);
nnet.setTeacher(trainer);
output.addOutputSynapse(trainer);
}

}

import org.joone.engine.Monitor;
import org.joone.engine.NeuralNetEvent;
import org.joone.engine.NeuralNetListener;


public class Test implements NeuralNetListener {

@Override
public void cicleTerminated(NeuralNetEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void errorChanged(NeuralNetEvent e) {
// TODO Auto-generated method stub
Monitor mon = (Monitor)e.getSource();
System.out.println("Cycle: "+(mon.getTotCicles()-mon.getCurrentCicle())+" RMSE:"+mon.getGlobalError());

}

@Override
public void netStarted(NeuralNetEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Training...");
}

@Override
public void netStopped(NeuralNetEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Stopped");
}

@Override
public void netStoppedError(NeuralNetEvent arg0, String arg1) {
// TODO Auto-generated method stub

}

}

分享到:
评论

相关推荐

    java的神经网络jar包joone.jar

    1. **Java神经网络框架**:Joone作为Java的神经网络框架,它的设计目标是提供一个易于使用的API,使开发人员能够快速地搭建神经网络结构,而无需深入理解神经网络的底层工作原理。它支持多种网络结构,如前馈网络、...

    人工智能-神经网络工具包JOONE

    JOONE(Java Object Oriented Neural Network)是sourceforge上一个用java语言迅速开发神经网络的最新工具包

    java神经网络的jar包joone.jar

    发现joone的jar包资源很少,就上传了,joone-engine.jar

    joone JAVA中的开源神经网络框架

    Joone 是一个基于Java语言的开源神经网络框架,它的出现为开发者提供了一个在Java环境中构建、训练和应用神经网络的工具。Joone 的设计目标是易于使用,同时保持足够的灵活性,以便适应各种复杂的神经网络模型。 ...

    java神经元网络框架(JOONE)

    总结起来,Java神经元网络框架JOONE是一个强大的工具,它为Java开发者提供了在深度学习领域的可能性,使得他们能够在熟悉的环境中开发和应用神经网络。无论是初学者还是经验丰富的数据科学家,都可以通过JOONE深入...

    开源java神经网络组件Joone、Encog和Neuroph的简单使用

    接下来是Encog,由Heaton Research开发,是一个功能强大的机器学习框架,特别关注神经网络。Encog支持多种网络类型,包括 feedforward、recurrent、convolutional 和 LSTM 网络。它还提供了大量的训练策略,如 ...

    神经网络joone_engin模式识别示范,eclipse

    标题中的“神经网络joone_engin模式识别示范,eclipse”指的是使用Joone Engine这一开源神经网络库在Eclipse集成开发环境下实现的一个模式识别的示例。Joone Engine是一个用Java编写的神经网络框架,它提供了构建和...

    Java开源神经网络框架JOONE,Maven

    Java开源神经网络框架JOONE是面向Java开发人员的高级工具,它允许用户构建、训练和应用神经网络模型。JOONE(Java Object Oriented Neural Engine)是基于对象编程的,提供了丰富的API来支持神经网络的创建和操作。...

    joone.jar包

    java 人工智能开发的 joone jar 包

    LTSM需要的jar包joone

    综上所述,使用joone库构建和训练神经网络模型需要对神经网络理论有一定了解,同时结合LTSM的特性,可能需要进行一定的自定义开发。借助提供的API文档和中文指南,开发者可以逐步掌握这个过程,并通过实践不断优化...

    Joone完整指南(中文版)

    Joone完整指南(中文版) ... Joone是一个功能强大且灵活的开源人工智能神经网络库,能够满足各种需要神经网络技术的领域的需求。通过 Joone,可以快速构建和部署神经网络模型,提高开发效率和产品质量。

    joone框架 java实现神经网络 模式识别

    Joone不仅提供了与MATLAB类似的神经网络功能,还具有更好的集成性,可以方便地与其他Java应用或服务进行交互。 在提供的压缩包文件中,`joone-javadoc.zip`包含的是Joone框架的API文档,这对于开发者理解和使用...

    joone-engine-0.8.3.zip_Java 8_joone_神经网络 java

    Joone Engine是一个基于Java开发的开源神经网络框架,版本为0.8.3。这个库专为Java 8设计,提供了高效且易于使用的接口来构建和训练神经网络模型。Joone这个名字是“Java Object Oriented Neural Engine”的缩写,...

    joone jar包以及API文档

    Joone 是一个开源的人工智能项目,专注于神经网络的研究与实现。这个压缩包包含了两个关键文件:`joone-javadoc.zip` 和 `joone.jar`。`joone.jar` 文件是 Joone 库的核心,它提供了对神经网络操作的类和方法,允许...

    joone-engine-1.1.2.zip_joone_joone-engine_joone-engine.jar_神经网络

    Joone Engine是一款基于Java开发的神经网络框架,其版本为1.1.2,封装在名为"joone-engine-1.1.2.zip"的压缩文件中。这个工具专为那些希望在Java环境中构建和训练神经网络模型的开发者设计。Joone Engine的核心组件...

    joone1.2.1-java包

    使用Joone 1.2.1 开发神经网络时,开发者需要了解以下几个关键步骤: 1. **网络结构设计**:确定网络的输入、输出和隐藏层的数量,以及各层之间的连接方式。 2. **节点配置**:选择合适的激活函数,如sigmoid、tanh...

    神经网络 joone (资料很全)

    1. joone文件夹中是官方网站提供的开发包和工具 2. joone-javadoc.zip压缩文件是存放了api(英文版,暂时没找到中文版) 3. XOR_using_NeuralNet.java文件是一个简单的例子(这个例子很好,我找了好久)

    joone-javadoc.zip

    Joone 是一个开源的Java库,专门用于构建和运行神经网络。这个库为开发者提供了在Java环境中实现神经网络算法的工具,使得复杂的人工神经网络模型可以在Java应用程序中轻松集成。"joone-javadoc.zip" 文件是一个包含...

    joone 源码 附:外部所有外部jar

    Joone 是一个基于Java开发的神经网络框架,它允许开发者创建和训练各种类型的神经网络模型。源码分析对于理解其内部工作原理、优化性能或扩展功能具有重要意义。在这个压缩包中,除了Joone的核心源代码之外,还包括...

    joone-engine-2.0.0RC1

    总结,Joone Engine 2.0.0RC1是一个强大且易用的Java神经网络框架,为开发者提供了丰富的功能和优秀的性能,是Java开发者在神经网络领域的可靠选择。如果你正在寻找一个能够快速原型设计、训练和部署神经网络模型的...

Global site tag (gtag.js) - Google Analytics