`
httpclient_bd
  • 浏览: 73956 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

neuroph简单的感知器测试

 
阅读更多
这是一个感知器学习AND规则的例子, 抄自NEU的Sample

首先定义TrainingSet, 两个参数分别表示输入向量SIZE和输出向量SIZE,看代码:
 /**
         * Creates an instance of new empty training set
         * 
         * @param inputVectorSize
         * @param outputVectorSize
         */
        public TrainingSet(int inputVectorSize, int outputVectorSize) {
		this.elements = new Vector<TrainingElement>();
                this.inputVectorSize = inputVectorSize;
                this.outputVectorSize = outputVectorSize;
	}



然后定义一个感知器, 两个参数分别表示输入层的元数和输出的元数, 代码:
/**
	 * Creates new Perceptron with specified number of neurons in input and
	 * output layer, with Step trqansfer function
	 * 
	 * @param inputNeuronsCount
	 *            number of neurons in input layer
	 * @param outputNeuronsCount
	 *            number of neurons in output layer
	 */
	public Perceptron(int inputNeuronsCount, int outputNeuronsCount) {
		this.createNetwork(inputNeuronsCount, outputNeuronsCount, TransferFunctionType.STEP);
	}

然后在当前线程启动学习过程。 对于需要异步执行的,提供了learnInNewThread来满足需求。
训练网络


验证输出。



public void testPerceptron() {
        TrainingSet trainingSet = new TrainingSet(2, 1);
        trainingSet.addElement(new SupervisedTrainingElement(new double[]{0, 0}, new double[]{0}));
        trainingSet.addElement(new SupervisedTrainingElement(new double[]{0, 1}, new double[]{0}));
        trainingSet.addElement(new SupervisedTrainingElement(new double[]{1, 0}, new double[]{0}));
        trainingSet.addElement(new SupervisedTrainingElement(new double[]{1, 1}, new double[]{1}));

        NeuralNetwork myPerceptron = new Perceptron(2, 1);
        myPerceptron.learnInSameThread(trainingSet);
        System.out.println("Testing trained perceptron");
        neuralNetwork(myPerceptron, trainingSet);
        myPerceptron.save("mySamplePerceptron.nnet");
        
        
        NeuralNetwork loadedPerceptron = NeuralNetwork.load("mySamplePerceptron.nnet");
        System.out.println("Testing loaded perceptron");
        neuralNetwork(loadedPerceptron, trainingSet);
	}
	
	
	
	private void neuralNetwork(NeuralNetwork neuralNet, TrainingSet trainingSet) {
	
	    for(TrainingElement trainingElement : trainingSet.trainingElements()) {
	        neuralNet.setInput(trainingElement.getInput());
	        neuralNet.calculate();
	        Vector<Double> networkOutput = neuralNet.getOutput();
	
	        double d1 = trainingElement.getInput().get(0);
	        double d2 = trainingElement.getInput().get(1);
	        
	        double result = networkOutput.get(0);
	        
	        boolean b1 = d1 == 1.0;
	        boolean b2 = d2 == 1.0;
	        
	        boolean r1 = result == 1.0;
	        
	        assertEquals(b1 & b2, r1);
	    }
	}

分享到:
评论

相关推荐

    Getting Started with Neuroph 2.6

    接下来,我们将通过具体示例来讲解如何使用Neuroph Studio创建并训练神经网络,以逻辑或函数(V)的感知器网络为例: ##### 步骤1:创建Neuroph项目 首先,在Neuroph Studio中选择“文件”&gt;“新建项目”,然后选择...

    neuroph-2.92

    Neuroph支持多种神经网络架构,包括多层感知器(Multilayer Perceptron)、自组织映射(Self-Organizing Map)、 Hopfield 网络(Hopfield Network)以及卷积神经网络(Convolutional Neural Network)等。...

    neuroph-29

    2. **多种网络架构**: 支持多种神经网络类型,包括感知器(Perceptron)、多层前馈网络(Multi-layer Perceptron)、自组织映射(Self-Organizing Map, SOM)等。 3. **图形用户界面**: 提供了一个友好的GUI工具,...

    TCR Neuroph -Text Character Recognition-开源

    - **创建神经网络**:在Neuroph中,我们选择合适的网络架构,如多层感知器,并设置网络的层数、节点数等参数。 - **训练神经网络**:使用标注的字符图像数据集训练网络,调整超参数以优化性能。 - **测试与评估**...

    NetBeans神经网络入门教程.pdf

    另一个例子是多层感知器(MLP)网络,这种网络有多个神经元层,每一层的神经元都与下一层的每个神经元相连,常用于识别、预测和分类等机器学习任务,其激活函数通常是sigmoid函数。 在Neuroph Studio中,用户可以...

    NetBeans神经网络入门教程扫描.pdf

    此外,还有一个多层感知器(MLP)网络的介绍,它包含多层神经元,每一层的神经元都连接到下一层的所有神经元。MLP网络常用于多种机器学习任务,如图像识别、文本字符识别和手写字母识别,这些更复杂的应用会在后续的...

    SNN:简单的神经网络测试

    简单的网络可能只有一个隐藏层,或者没有隐藏层(如感知机)。 2. **激活函数**:如sigmoid、ReLU、tanh等,用于引入非线性并使网络能够处理更复杂的模式。 3. **权重初始化**:合适的权重初始化对于网络的收敛...

    手写数字识别的几种算法 c 源码

    更复杂的方法涉及使用人工神经网络,如多层感知器(MLP)。这些网络可以通过训练学习数字的特征,然后用于预测新图像的类别。C语言中,可以使用开源的Neuroph库或自编译的神经网络框架来实现。 5. **支持向量机(SVM)...

    TestMultiLayerPerceptron

    标题“TestMultiLayerPerceptron”暗示我们正在讨论一个与多层感知器(Multilayer Perceptron, MLP)相关的测试项目。多层感知器是一种人工神经网络,它具有至少一个隐藏层,能够处理非线性可分的问题。在机器学习...

    基于神经网络的数字识别系统

    本系统可能采用了多层感知器(MLP)、卷积神经网络(CNN)或循环神经网络(RNN)等常见模型。其中,CNN在图像识别领域表现优异,能自动学习和提取图像特征,适用于数字识别任务。 5. **训练与测试数据集** 为了...

    Neural Tic Tac Toe-开源

    Neuroph支持多种神经网络架构,包括多层感知器、自组织映射等,对于这个井字游戏应用,很可能使用的是多层感知器,因为它能处理分类问题,适合游戏决策。 从提供的压缩包文件名称列表来看,我们可以看到项目的构建...

    digit-recog-nn:Java中使用神经网络进行数字识别

    5. **模型架构**:神经网络的结构可能包括多层感知器(Multilayer Perceptron, MLP),它由输入层、一个或多个隐藏层和一个输出层组成,每层由若干神经元构成,通过激活函数(如Sigmoid或ReLU)进行非线性变换。...

    artificial-neural-networks:Artificial Neural Networks 人工神经网络

    除了基本的前馈神经网络,还有其他高级结构如自编码器(Autoencoder)用于降维和特征学习,生成对抗网络(GAN)用于生成新的数据,以及强化学习中的Q学习网络等。 总的来说,人工神经网络是现代AI的核心组成部分,Java...

    Neural-Network:我为AI课创建的神经网络

    例如,Deeplearning4j支持多种神经网络架构,如多层感知器(Multilayer Perceptron)、卷积神经网络(Convolutional Neural Network)等,并且能够处理大规模数据集。 项目中提到的PDF文件很可能是数据集的详细说明...

Global site tag (gtag.js) - Google Analytics