增加输出神经元回调,及API文档说明

pull/1/head
lidapeng 5 years ago
parent 35177b7d70
commit 5d0c9bd9e8

@ -17,64 +17,7 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
<scope>compile</scope>
</dependency>
<!-- 使用异步写日志功能 必须引入此包 -->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.4.2</version>
</dependency>
</dependencies>
<build>
<resources>
<!-- resources文件 -->
<resource>
<directory>src/main/resources</directory>
<!-- 是否被过滤,如果被过滤则无法使用 -->
<filtering>false</filtering>
</resource>
<!-- java文件夹 -->
<resource>
<directory>src/main/java</directory>
<!-- 引入映射文件等 -->
<includes>
<include>com/wlld/robot/sql/config/*.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>

@ -1,8 +1,5 @@
package org.wlld.nerveEntity;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* @author lidapeng
*
@ -10,7 +7,7 @@ import org.apache.logging.log4j.Logger;
*/
public class HiddenNerve extends Nerve {
private int depth;//所处深度
static final Logger logger = LogManager.getLogger(HiddenNerve.class);
//static final Logger logger = LogManager.getLogger(HiddenNerve.class);
public HiddenNerve(int id, int depth, int upNub, int downNub, double studyPoint, boolean init) {//隐层神经元
super(id, upNub, "HiddenNerve", downNub, studyPoint, init);
@ -19,10 +16,10 @@ public class HiddenNerve extends Nerve {
@Override
public void input(long eventId, double parameter, boolean isStudy, double E) throws Exception {//接收上一层的输入
logger.debug("name:{},myId:{},depth:{},eventId:{},parameter:{}--getInput", name, getId(), depth, eventId, parameter);
// logger.debug("name:{},myId:{},depth:{},eventId:{},parameter:{}--getInput", name, getId(), depth, eventId, parameter);
boolean allReady = insertParameter(eventId, parameter);
if (allReady) {//参数齐了,开始计算 sigma - threshold
logger.debug("depth:{},myID:{}--startCalculation", depth, getId());
// logger.debug("depth:{},myID:{}--startCalculation", depth, getId());
double sigma = calculation(eventId);
double out = activeFunction.sigmoid(sigma);//激活函数输出数值
if (isStudy) {
@ -31,7 +28,7 @@ public class HiddenNerve extends Nerve {
} else {
destoryParameter(eventId);
}
logger.debug("depth:{},myID:{},outPut:{}", depth, getId(), out);
// logger.debug("depth:{},myID:{},outPut:{}", depth, getId(), out);
sendMessage(eventId, out, isStudy, E);
}
// sendMessage();

@ -1,7 +1,5 @@
package org.wlld.nerveEntity;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.wlld.function.ActiveFunction;
import org.wlld.tools.ArithUtil;
@ -21,7 +19,7 @@ public abstract class Nerve {
protected int upNub;//上一层神经元数量
protected int downNub;//下一层神经元的数量
protected Map<Long, List<Double>> features = new HashMap<>();
static final Logger logger = LogManager.getLogger(Nerve.class);
//static final Logger logger = LogManager.getLogger(Nerve.class);
protected double threshold;//此神经元的阈值需要取出
protected ActiveFunction activeFunction = new ActiveFunction();
protected String name;//该神经元所属类型
@ -142,9 +140,9 @@ public abstract class Nerve {
double value = featuresList.get(i);
double w = dendrites.get(i + 1);
sigma = ArithUtil.add(ArithUtil.mul(w, value), sigma);
logger.debug("name:{},eventId:{},id:{},myId:{},w:{},value:{}", name, eventId, i + 1, id, w, value);
//logger.debug("name:{},eventId:{},id:{},myId:{},w:{},value:{}", name, eventId, i + 1, id, w, value);
}
logger.debug("当前神经元线性变化已经完成,name:{},id:{}", name, getId());
//logger.debug("当前神经元线性变化已经完成,name:{},id:{}", name, getId());
return ArithUtil.sub(sigma, threshold);
}

@ -1,7 +1,5 @@
package org.wlld.nerveEntity;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.wlld.i.OutBack;
import org.wlld.tools.ArithUtil;
@ -11,7 +9,7 @@ import org.wlld.tools.ArithUtil;
* @date 11:25 2019/12/21
*/
public class OutNerve extends Nerve {
static final Logger logger = LogManager.getLogger(OutNerve.class);
// static final Logger logger = LogManager.getLogger(OutNerve.class);
private OutBack outBack;
public OutNerve(int id, int upNub, int downNub, double studyPoint, boolean init) {
@ -24,12 +22,12 @@ public class OutNerve extends Nerve {
@Override
public void input(long eventId, double parameter, boolean isStudy, double E) throws Exception {
logger.debug("Nerve:{},eventId:{},parameter:{}--getInput", name, eventId, parameter);
// logger.debug("Nerve:{},eventId:{},parameter:{}--getInput", name, eventId, parameter);
boolean allReady = insertParameter(eventId, parameter);
if (allReady) {//参数齐了,开始计算 sigma - threshold
double sigma = calculation(eventId);
double out = activeFunction.sigmoid(sigma);
logger.debug("myId:{},outPut:{}------END", getId(), out);
// logger.debug("myId:{},outPut:{}------END", getId(), out);
if (isStudy) {//输出结果并进行BP调整权重及阈值
outNub = out;
this.E = E;

@ -1,20 +0,0 @@
package org.wlld;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
* Unit test for simple App.
*/
public class AppTest
{
/**
* Rigorous Test :-)
*/
@Test
public void shouldAnswerWithTrue()
{
assertTrue( true );
}
}
Loading…
Cancel
Save