增加简易API说明文档

pull/1/head
lidapeng 5 years ago
parent d59f731c27
commit b6f585736f

@ -1,38 +0,0 @@
//MyBrain-JAVA 神经网络api说明文档
//构建一个神经网络管理器,参数:(感知神经元个数,隐层神经元个数,输出神经元个数,隐层神经元深度)
//一个神经网络管理管理一个神经网络学习内容,所以当初始化一个神经网络管理器,请将它置于静态对象
NerveManager nerveManager =
new NerveManager(int sensoryNerveNub,int hiddenNerverNub,int outNerveNub,int hiddenDepth);
//开始构建神经网络,参数(各神经元是否进行权重及阈值的初始化),若不进行初始化,则用户需将之前保存的训练数据加载进神经元
nerveManager.init(boolean initPower);
//设置学习率(取值范围是0-1开区间)若不设置默认为0.1
nerveManager.setStudyPoint(0.2);
//添加判断回调输出类,参数:创建一个类 这将这类实现OutBack接口和其类方法,检测状态下的输出神经元,会将输出结果回调到这个类
//若神经网络是学习状态,可不设置。检测状态若不设置会报错
nerveManager.setOutBack(new Test());
//获取感知神经元集合
List<SensoryNerve> sensoryNerves = nerveManager.getSensoryNerves();
//从集合里拿出一个感知神经元进行输入参数事件ID输入参数是否是学习状态对应输出神经元ID与期望结果的映射
sensoryNerves.get(i).postMessage(long eventId, double parameter, boolean isStudy, Map<Integer,Double> E);
//实现OutBack 接口的类 回调 getBack() 参数该输出神经元输出值该神经元ID该事件ID
public void getBack(double out, int id, long eventId) {
System.out.println("out==" + out + ",id==" + id + ",eventId==" + eventId);
}
神经管理器说明
private List<SensoryNerve> sensoryNerves = new ArrayList<>();//感知神经元
private List<List<Nerve>> depthNerves = new ArrayList<>();//隐层神经元
private List<Nerve> outNevers = new ArrayList<>();//输出神经元
学习结束通过GET方法 获取三类神经元 集合并通过Nerve类 的
public Map<Integer, Double> getDendrites() {//各参数权重
return dendrites;
}
public double getThreshold() {//该神经元阈值
return threshold;
}
获取这两个参数 并保存数据库,等下次服务启动 将对应数据在通过其SET方法 加载进对应神经元,此为上次学习结果
参数说明:
eventId事件ID,进行一次神经网络判断为一次事件ID,ID唯一可通过IdCreator.get().nextId 生成
其目的就是 回调的时候 通过这个ID 判断 输出的结果是对应哪一个检测及输入事件
parameter:就是输入参数
isStudy:是否是学习状态判断状态传FALSE,模板学习传TRUE,注意:学习状态输出神经元不输出结果
E:期望结果检测状态随便写值没有影响学习状态是该模板期望的结果通常为0或者1即分类值

@ -38,7 +38,7 @@
* 功能还在扩展:
本包现在的功能还在逐步扩展中
* 说明文档有不清楚的地方可联系作者询问QQ794757862,或者查看视频教程,上有链接
## 图像部分API 说明:
## 图像部分最简API 说明:
public static void testPic() throws Exception {
//测试SPEED模式学习过程
//初始化图像转矩阵类:作用就是说将一个图片文件转化为矩阵类
@ -203,7 +203,7 @@
回调第一个参数是输出值 指的是 这个分类的概率 该数值是0-1之间的浮点
第二个参数是 分类的id 判断是训练的哪个分类的ID
第三个参数是 事件ID,一次判断事件 使用一个ID,让开发者知道是哪次事件的回调判断
## 自然语言分类API 说明:
## 自然语言分类最简API 说明:
public static void test() throws Exception { //自然语言分类说明
//创建模板读取累
TemplateReader templateReader = new TemplateReader();
@ -222,6 +222,44 @@
//这里做一个特别说明语义分类的分类id不要使用"0",本框架约定如果类别返回数字0则意味不能理解该语义即分类失败
//通常原因是模板量不足,或者用户说的话的语义,不在你的语义分类训练范围内
}
## 神经网络最简API说明
//创建一个DNN神经网络管理器
NerveManager nerveManager = new NerveManager(...);
//构造参数
//sensoryNerveNub 感知神经元数量 即输入特征数量
//hiddenNerverNub 每一层隐层神经元的数量
//outNerveNub 输出神经元数量 即分类的类别
//hiddenDepth 隐层神经元深度,即学习深度
//activeFunction 激活函数
//isDynamic 是否启用动态神经元数量(没有特殊需求建议为静态,动态需要专业知识)
public NerveManager(int sensoryNerveNub, int hiddenNerverNub, int outNerveNub, int hiddenDepth, ActiveFunction activeFunction, boolean isDynamic)
nerveManager.getSensoryNerves()获取感知神经元集合
//eventId:事件ID
//parameter:输入特征值
//isStudy:是否是学习
//E:特征标注
//OutBack 回调类
SensoryNerv.postMessage(long eventId, double parameter, boolean isStudy, Map<Integer, Double> E, OutBack outBack)
//每一次输出结果都会返回给回调类通过回调类拿取输出结果并通过eventId来对应事件
## 随机森林最简API说明
//创建一个内存中的数据表
DataTable dataTable = new DataTable(column);
//构造参数是列名集合
public DataTable(Set<String> key)
//指定主列名集合中该表的主键
dataTable.setKey("point");
//创建一片随机森林
RandomForest randomForest = new RandomForest(7);
//构造参数为森林里的树木数量
public RandomForest(int treeNub)
//唤醒随机森林里的树木
randomForest.init(dataTable);
//将加入数据的实体类一条条插入森林中
randomForest.insert(Object object);
//森林进行学习
randomForest.study();
//插入特征数据,森林对该数据的最终分类结果进行判断
randomForest.forest(Object objcet);
#### 最终说明
* TempleConfig()配置模版类一定要静态在内存中长期持有检测的时候不要每次都NEW
一直就使用一个配置类就可以了。

Loading…
Cancel
Save