public double[] hiddenLayerOutput(double[][] inputLayerWeights, int[] nodeCliqueFeatures, SeqClassifierFlags aFlag, double[] featureVal) { int layerOneSize = inputLayerWeights.length; if (layerOneCache == null || layerOneSize != layerOneCache.length) layerOneCache = new double[layerOneSize]; for (int i = 0; i < layerOneSize; i++) { double[] ws = inputLayerWeights[i]; double lOneW = 0; for (int m = 0; m < nodeCliqueFeatures.length; m++) { double dotProd = ws[nodeCliqueFeatures[m]]; if (featureVal != null) dotProd *= featureVal[m]; lOneW += dotProd; } layerOneCache[i] = lOneW; } if (!aFlag.useHiddenLayer) return layerOneCache; // transform layer one through hidden if (hiddenLayerCache == null || layerOneSize != hiddenLayerCache.length) hiddenLayerCache = new double[layerOneSize]; for (int i = 0; i < layerOneSize; i++) { if (aFlag.useSigmoid) { hiddenLayerCache[i] = sigmoid(layerOneCache[i]); } else { hiddenLayerCache[i] = Math.tanh(layerOneCache[i]); } } return hiddenLayerCache; }
public double[] hiddenLayerOutput(double[][] inputLayerWeights, int[] nodeCliqueFeatures, SeqClassifierFlags aFlag, double[] featureVal) { int layerOneSize = inputLayerWeights.length; if (layerOneCache == null || layerOneSize != layerOneCache.length) layerOneCache = new double[layerOneSize]; for (int i = 0; i < layerOneSize; i++) { double[] ws = inputLayerWeights[i]; double lOneW = 0; for (int m = 0; m < nodeCliqueFeatures.length; m++) { double dotProd = ws[nodeCliqueFeatures[m]]; if (featureVal != null) dotProd *= featureVal[m]; lOneW += dotProd; } layerOneCache[i] = lOneW; } if (!aFlag.useHiddenLayer) return layerOneCache; // transform layer one through hidden if (hiddenLayerCache == null || layerOneSize != hiddenLayerCache.length) hiddenLayerCache = new double[layerOneSize]; for (int i = 0; i < layerOneSize; i++) { if (aFlag.useSigmoid) { hiddenLayerCache[i] = sigmoid(layerOneCache[i]); } else { hiddenLayerCache[i] = Math.tanh(layerOneCache[i]); } } return hiddenLayerCache; }
for (int i = 0; i < layerOneSize; i++) { if (aFlag.useSigmoid) { hiddenLayerCache[i] = sigmoid(layerOneCache[i]); } else { hiddenLayerCache[i] = Math.tanh(layerOneCache[i]);