This commit is contained in:
2025-09-04 14:09:23 +08:00
parent b31a39a29b
commit 0aed9b2f05

View File

@@ -0,0 +1,51 @@
package org.dromara.easyai.transFormer.nerve;
import org.dromara.easyai.matrixTools.Matrix;
import org.dromara.easyai.i.ActiveFunction;
import org.dromara.easyai.i.OutBack;
import org.dromara.easyai.transFormer.LineBlock;
import java.util.List;
/**
* @author lidapeng
* 隐层神经元
* @date 9:30 上午 2019/12/21
*/
public class HiddenNerve extends Nerve {
public HiddenNerve(int id, int depth, float studyPoint, ActiveFunction activeFunction, int sensoryNerveNub,
int outNerveNub, LineBlock lineBlock, int regularModel, float regular
, int coreNumber) throws Exception {//隐层神经元
super(id, "HiddenNerve", studyPoint, activeFunction, sensoryNerveNub, 0,
outNerveNub, lineBlock, regularModel, regular, coreNumber);
this.depth = depth;
}
public void receiveErrorMatrix(Matrix g, long eventId, Matrix allError) throws Exception {//
updatePower(eventId, g, allError);
}
public void receive(Matrix feature, long eventId, boolean isStudy, OutBack outBack,
List<Integer> E, Matrix encoderFeature, boolean outAllPro) throws Exception {//接收上一个残差层传过来得参数
Matrix out = opMatrix(feature, isStudy);
sendMessage(eventId, out, isStudy, feature, outBack, E, encoderFeature, outAllPro);
}
@Override
protected void input(long eventId, Matrix parameter, boolean isStudy, Matrix allFeature, OutBack outBack,
List<Integer> E, Matrix encoderFeature, boolean outAllPro) throws Exception {//第二层收到参数
boolean allReady = insertMatrixParameter(eventId, parameter);
if (allReady) {//参数齐了,开始计算
Matrix out = opMatrix(reMatrixFeatures.get(eventId).getMatrix(), isStudy);
reMatrixFeatures.remove(eventId);
beforeLayNorm.addNormFromNerve(eventId, isStudy, out, allFeature, outBack, E, encoderFeature, outAllPro);
}
}
public void postMessage(long eventId, Matrix feature, boolean isStudy, OutBack outBack, List<Integer> E, boolean outAllPro) throws Exception {
Matrix out = opMatrix(feature, isStudy);
sendOutMessage(eventId, out, isStudy, outBack, E, outAllPro);
}
}