基于JOONE快速开发神经网络

joone 源码 附:外部所有外部jar joone java 源码 内含所有外部引用jar,希望大家能喜欢 本人也是找了很久,github 上的pom.xml 引用的已经丢失了三个jar 立即下载

一.神经网络介绍

20世纪70年代以来,随着计算机技术的不断发展,人工神经网络(ANN)的理论与实践都得到了迅猛提高。ANN的概念来源于生物神经网络(BNN)。限于目前的理论与技术,ANN保留了脑神经网络的基本结构,反映脑神经系统的工作原理。在ANN中,记忆的信息存贮在连接权上,外部刺激通过连接通道自动激活相应的神经元,以达到自动识别的目的。因而,它是与现代计算机完全不同的系统。ANN模拟生物体中神经网络的某些结构和功能,并反过来用于工程或其他的领域。

 

二.关于JOONE

JOONE(Java Object Oriented Neural Network)是sourceforge.net上一个用java语言迅速开发神经网络的开源项目。JOONE支持很多的特性,比如多线程和分布式计算,这意味着可以JOONE可以利用多处理器或是多计算机来均衡附载。

JOONE主要有三个大的模块:

joone-engine:joone的核心模块。

                                          joone-editor:joone的gui开发环境。不用编写一行代码就建立神经网络模型,并可以进行训练和验证。Joone中提供了一个用joone-editor建立xor网络模型的例子,本文中的神经网络就是参考这个例子所完成的。

joone-distributed-environment       :joone用于支持分布式计算的模块。

本文使用joone-editor建立一个用于模式识别的神经网络,进行训练,然后在一个java applet 程序中用于识别用户的输入。

 

三.利用JOONE快速建立神经网络

 

 

 

 

 

 

 

图1.一个简单的神经网络

 

图2.在joone中的表示

 

 

    图1是一个简单的神经网络,在joone中用layer来表示每层的所有的节点,用synapse来封装层与层之间的连接。这是相应的java代码:

//建立三个sigmoid节点层和两个全连接。

SigmoidLayer layer1 = new SigmoidLayer();

SigmoidLayer layer2 = new SigmoidLayer();

SigmoidLayer layer3 = new SygmoidLayer();

FullSynapse synapse1 = new FullSynapse();

FullSynapse synapse2 = new FullSynapse();

//设置各层的节点个数

layer1.setRows(3);

layer2.setRows(3);

layer3.setRows(3);

//把各层连接起来

layer1.addOutputSynapse(synapse1);

layer2.addInputSynapse(synapse1);

layer2.addOutputSynapse(synapse2);

layer3.addInputSynapse(synapse2);

 

这样,一个简单的神经网络模型就建好了,joone会自动的随机设置连接的权系数。 当然这个网络目前还没有进行训练,没有任何实际的功能。下文将用joone建立一个模式识别的神经网络。也可以用joone-editor在可视化界面上快速建立神经网络,下图是用joone-editor建立的求解异或问题的神经网络模型:

 

图4.joone-editor中的模型

四.

图5.识别程序

建立模式识别的神经网络

[1]       程序说明

本程序是实现一个简单的模式识别的神经网络。用户在画板中用鼠标写字母,由程序进行识别并显示。用户在一个10X12的区域内绘制字母,点击【识别】按钮,对用户输入的图形进行识别。在右上方显示当前的图像所对应的神经网络的输入,在右下方是神经网络的输出和识别结果。在图5中用户输入了A,程序作出了正确的识别。

 

[2]       用joone-editor建立神经网络模型

打开joone-editor,新建一个神经网络,如图所示:

该程序的神经网络的主要组成部分有:

l          120个输入节点所组成的输入层

l          由8个节点组成的隐层

l          由4个节点组成的输出层

l          一个joone自己的训练层以及两个文件输入层,用来输入测试数据和期望值。

 

 

 

[3]       训练神经网络

首先通过编写的程序获取训练数据。在java程序的12x10的输入框体中绘制字母,右上角的文本框会生成相应的大小为120的一维整形数组作为输入数据,用分号分隔。每次输入作为单独的一行。由于本程序要区分A、B、C、D四个字母,所以期望值是一个长度为4的数组。现在规定A对应为“1;0;0;0”,B对应“0;1;0;0”,C为“0;0;1;0”,D为“0;0;0;1”,并把这些结果添加到对应的每行输入数据的后面。在两个FileInput中设置输入文件为刚刚建立的数据文件,并设置训练数据是从第1行到第120行,训练数据是从第121行到的124行。

打开控制面板,设置学习速率为0.7,用所用的35条记录训练10000次。点击【run】开始训练。控制面板上会显示训练的进度和收敛情况。到了400次的时候,系统的误差已经很小了(0.002260),可以点击pause来停止训练。如果权值参数选择不合理的话有可能造成网络不能收敛。这时可以选择【control】->【randomize】,重新随机生成初始的权系数。

 

图7.训练控制面板

[4]       把完成训练的神经网络移植到程序中

为了在程序中使用训练好的神经网络,可以把利用java的序列化功能把完成训练的网络输出到文件中,然后在程序中读取这个文件,重新生成神经网络对象。选择【file】->【export neuralNet…】,把当前神经网络保存到文件中去。然后就可以在程序中使用了。

下面是从文件中读取神经网络的代码:

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:/work/homework/ANN/final/3.snet"));

Object o = ois.readObject();

System.out.println("o is " + o);

ois.close();

NeuralNet net = (NeuralNet) o;

然后在程序中就可以使用了。每次用户绘制的数据转换成120的一维数组作为输入,然后神经网络进行计算并输出一个长为4的向量作为输出。

 

五.测试

绘制了9次A、B、C和8次D共35个记录作为输入数据,训练了10000次,然后输出神经网络。用该神经网络进行识别,发现对于与训练数据相似的输入,识别的准确率很高,但是对和原来的训练数据差别较大的输入,程序可能会发生误判。为了提高准确率,需要增加样本的数量和覆盖面。

 

六.高级特性

joone还有很多的高级特性。它支持多种处理层(linear, sigmoid, tanh, logarithmic, context , delay, nested),多种连接方式(full synapse,direct synapse,delayed synapse,sanger synapse),还提供了一系列的工具以及script语言来帮助处理数据和分析结果。灵活的运用joone,可以迅速的开发各种神经网络。

 

七.参考文献及相关资源

[1]       神经网络介绍-利用反向传播算法的模式学习 Andrew Blais, Ph.D. (onlymice@gnosis.cx), David Mertz, Ph.D. (mertz@gnosis.cx), Gnosis Software, Inc. 2001 年 6 月 http://www-900.ibm.com/developerWorks/cn/linux/other/l-neural/index.shtml

[2]       人工智能 沟口理一郎 石田亨 科学出版社 2003年2月

[3]       joone主页 http://sourceforge.net/projects/joone

[4]       同时附上本文的java源程序和训练好的神经网络

joone JAVA中的开源神经网络框架 joone JAVA中的开源神经网络框架 joone JAVA中的开源神经网络框架 立即下载

相关推荐

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

matlab在图像处理方面显得无比的强大,但是不要忘了,java也可以实现神经网络,对于图像处理方面非常有用。这里主要包括了jar包以及文档。

java版本的神经网络——开源框架JOONE实践

由于实验室事情缘故,需要将python写的神经网络转成Java版本的,但是python中的numpy等啥包也不知道在Java里面对应的是什么工具,所以索性直接寻找一个现成可用的Java神经网络框架,于是就找到了JOONE,JOONE是一个神经网络的开源框架,使用的是BP算法进行迭代计算参数,使用起来比较方便也比较实用,下面介绍一下JOONE的一些使用方法。   JOONE需要使用一些外部的...

luchi007的专栏 894

joone-engine.jar

java运行依赖jar包

神经网络开发包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.Teac

gonxi的专栏 3200

对比和比较Encog,Neuroph和JOONE神经网络

我比较了Encog,Neuroph和JOONE的性能

LTSM需要的jar包joone

LTSM需要的jar包joone,没用过,不知道好用不,不过自带API

JOONE-神经网络 java api

如何使用java代码构建NN 引擎的支点是Layer对象。它由N个神经元组成(可以通过属性'rows'设置)。想象一下由三层组成的前馈神经网络,如下所示: 要使用joone构建这个网络,我们必须创建三个Layer对象和两个Synapse对象: SigmoidLayer layer1 = new SigmoidLayer(); SigmoidLayer laye

因为低调所以牛逼 3843

基于MYD-YT153与AD7616的16通道高速ADC采集系统实战指南

在嵌入式系统与工业数据采集领域,模拟信号采集是连接物理世界与数字系统的关键技术。其核心原理是通过模数转换器(ADC)将连续的模拟电压信号转换为离散的数字码值,供处理器处理。这项技术的价值在于实现了对温度、压力、振动等关键物理量的精确感知与数字化,是工业自动化、设备监测、科学实验等场景的基石。本文聚焦于**多通道**、**高精度**采集这一常见需求,深入剖析如何利用全志T153处理器的LocalBus并行总线接口,高效驱动ADI的16位、16通道同步采样ADC芯片AD7616,构建一个稳定可靠的高速数据采集系

weixin_30335353的博客 443

基于 JOONE 快速开发神经网络 (Java)

基于 JOONE 快速开发神经网络   一. 神经网络介绍 20 世纪 70 年代以来,随着计算机技术的不断发展,人工神经网络( ANN )的理论与实践都得到了迅猛提高。 ANN 的概念来源于生物神经网络( BNN )。限于目前的理论与技术, ANN 保留了脑

Zfrong繁荣的IT技术、IT项目、解决方案专栏Blog-上海 3079

京东商品多维特征提取:基于时空大模型的实时库存预测接口设计

在电商行业,库存管理是供应链的核心环节之一。库存水平过高会导致资金占用、仓储成本增加,而库存水平过低则可能引发缺货风险,影响客户满意度和平台声誉。京东作为中国领先的电商平台,拥有海量的商品数据和复杂的业务场景,传统的库存预测方法难以应对市场动态变化和业务需求。时空大模型作为一种融合时间序列分析和空间特征提取的前沿技术,能够捕捉商品多维特征在时空维度上的变化规律,为实时库存预测提供更精准的决策依据。

FB13713612741的博客 955

pcb印刷电路缺陷检测----数据集准备

PKU-Market-PCB 印刷电路板 (PCB) 瑕疵数据集是一个公共合成 PCB 数据集,包含 1,386 张图像,具有 6 种缺陷(漏孔、鼠咬、开路、短路、杂散、杂铜),可用于图像检测、分类和配准任务。

qq_30190551的博客 4439

STM32寄存器白话手册:从硬件信号流理解GPIO、时钟与中断

寄存器操作是嵌入式开发的底层基石,其本质是控制芯片内部总线、时钟域与外设信号通路的物理行为。理解APB/AHB总线时序、RCC时钟使能逻辑及NVIC中断触发链路,是实现稳定驱动与精准调试的前提。技术价值在于绕过HAL/标准库黑盒,直击硬件响应机制——例如GPIO输出速度(OSPEEDR)直接影响信号边沿质量,而USART_CR1的UE位未置1将导致串口完全静默。典型应用场景包括低延迟外设控制、故障深挖(如ADC采样异常)、资源敏感型RTOS移植及DMA传输可靠性优化。本文聚焦STM32系列中高频出错的寄存器

ciya3282的博客 397

振动能量采集技术:从原理到实战,破解物联网供电难题

能量采集技术旨在捕获环境中的废弃能量(如机械振动、热能、光能)并将其转化为电能,其核心原理在于通过压电、电磁、静电或摩擦电等物理效应实现能量形式的转换。这项技术的核心价值在于为物联网(IoT)中难以布线或更换电池的分布式传感器节点、植入式医疗设备等提供近乎永续的电力解决方案,从而解决物联网部署的“最后一米供电”瓶颈。其应用场景广泛覆盖工业预测性维护、结构健康监测、可穿戴设备及消费电子等领域。本文聚焦于振动能量采集这一细分方向,深入剖析了压电式、电磁式、电容式及摩擦纳米发电机(TENG)等主流技术路线的实战考

weixin_42660494的博客 569

用Java开源项目JOONE实现人工智能编程

首先,输入模式数要置为4,这是因为我们想要神经网络处理所有这四种输入模式(你以前为训练该神经网络提供的)。JOONE引擎封装了神经网络编程中的具有相当多的复杂性,本文的例子显示了神经网络使用的基本过程。尽管真实世界中神经网络的实现将复杂得多,但是其基本处理过程是一样的--数据被提供到神经网络用于训练,然后生成新的模式用于识别。你要使用神经原层对象,用于描述一层的一个或多个的具有相似特征的神经原。从上面的代码看出,输入层有两个神经原,隐蔽层有三个隐蔽神经原,输出层包含一个神经原。

xxaa1mmn的博客 775

保姆级教程:在Ubuntu 22.04上从零安装SUMO并运行第一个交通仿真

本教程详细介绍了在Ubuntu 22.04系统上从零安装SUMO交通仿真软件并运行第一个仿真的完整流程。涵盖环境准备、PPA源安装、核心组件验证、首次仿真案例运行以及进阶配置技巧,特别针对netedit路网编辑器和地图格式转换等实用工具进行重点讲解,帮助用户快速掌握SUMO在交通仿真领域的应用。

weixin_30546189的博客 424

基于深度确定性策略梯度的永磁同步电机强化学习控制方法

本文提出了一种基于深度确定性策略梯度(DDPG)的永磁同步电机(PMSM)电流内环智能控制方法。首先建立了PMSM在d-q坐标系下的数学模型,分析了传统矢量控制双闭环系统中PI控制器的局限性。针对电流内环控制问题,设计了包含电流跟踪误差、转速信息和历史控制量的状态空间,将电压输出作为动作空间,并构建了兼顾跟踪精度和响应速度的奖励函数。通过DDPG算法训练智能体,使其能够自适应调整控制策略。仿真结果表明,与固定参数的PI控制器相比,DDPG控制器在动态响应速度和抗干扰能力方面具有明显优势,为PMSM高性能控制

huanghm88的专栏 104

用joone来快速建立神经网络系统

用joone来快速建立神经网络系统简介很少有程序员不对这里或者那里所包含的人工智能编程所吸引,然而,许多对AI感兴趣的程序员很快就因其中包含的算法的复杂性而退却。在本文中,我们将讨论一个能大大简化这种复杂性的Java开源工程。Java面向对象的神经网络(JOONE)是一开源工程,它提供给Java程序员一个高适应性的神经网络。该JOONE工程源代码由LGPL所保护。简言之,这意味着源代码是可

2192

15 RK3568 RTL8111 PCIE

我这边扩了三个网卡。pcie3.0拆分了1+1lane。需要注意自己的reset引脚修改为自身rtl引脚即可。1、调试pcie 扩展网卡 RTL8111。

qq_39451352的博客 182

用joone来快速建立神经网络系统(补全

今来要学习神经网络并将其用到项目中去,在找资料到过程到看到“用joone来快速建立神经网络系统” 发现作者没有翻译过来,特将其完善一下,并把原文网址加上供大家参考用joone来快速建立神经网络系统简介很少有程序员不对这里或者那里所包含的人工智能编程所吸引,然而,许多对AI感兴趣的程序员很快就因其中包含的算法的复杂性而退却。在本文中,我们将讨论一个能大大简化这种复杂性的Java开源工程。

menglong2008的专栏 1907

用 ST02 看懂 ABAP 系统内存:Tune Summary 中的内存资源监控实战

摘要:ST02是SAP ABAP应用服务器内存监控的核心工具,提供实例级内存快照,重点关注Extended Memory(EM)、Heap Memory(PRIV)等关键指标。与ST06、SM50等工具联动使用,可有效诊断内存瓶颈问题。ST02特别适用于多实例系统的分布式分析,通过观察EM的Max.use是否接近上限、工作进程是否频繁进入PRIV模式等,判断内存配置是否合理。其Mode List功能还能定位具体用户会话的内存占用情况,区分系统级与程序级问题。该工具应纳入日常巡检清单,尤其在高并发场景下对预防

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1552

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

神经网络java框架学习

1. Java神经网络框架 Neuroph   Neuroph是轻量级的Java神经网络的框架,可以用来模拟常见的神经网络架构。Neuroph包含一个开源的java类库和少量对应基本神经网络概念的基类,以及easyNeurons GUI工具。 Neuroph Documentation 2. 神经网络开源框架 JOONE   JOONE(Java Object Oriented N

Lily_Chang的博客 4364

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

人工神经网络中的一种——反向传播神经网络(BP ANN)

久远的记忆,发上来和有缘人分享一下,格式有些乱掉了。。。 内部交流系列一 人工神经网络中的一种——反向传播神经网络(BP ANN) ·写在前面的话 一个人的理解难免有偏颇,所以以下的言论不可全信,要抱着怀疑的态度审视。本着传达思想又不吓到人的目的,相关的名字可能不会解释太多,有兴趣的话可以查资料深入了解一下。 (注:人工神经网络这是一个大的学科分支,以下主要针对BP ...

Ailong10111的博客 1351

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java 与 AI 结合的实际操作规程案例

框架成熟化:如 OpenNLP、JOONE 等工具链持续迭代,降低算法实现门槛。协作智能化:AI 编程工具(如通义千问、RepoPrompt)从“代码补全”演进为“需求-代码”端到端生成,但需人工把控代码质量与架构设计。开发者可通过上述案例结合具体场景选择工具链,并注重人机协作中的需求细化与代码审查。

免费 1492
上一篇: 工作流编辑器--源码下载
下一篇: java词法分析器,以及编译相关内容
csdnloading
博客等级 码龄11年 0粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值