public Map<String, INDArray> getGradientsFromFlattened(NeuralNetConfiguration conf, INDArray gradientView) { Map<String, INDArray> out = super.getGradientsFromFlattened(conf, gradientView); FeedForwardLayer layerConf = (FeedForwardLayer) conf.getLayer(); int nIn = layerConf.getNIn(); int nOut = layerConf.getNOut(); int nWeightParams = nIn * nOut; int nUserWeightParams = numUsers * nOut; INDArray userWeightGradientView = gradientView.get(NDArrayIndex.point(0), NDArrayIndex.interval(nWeightParams + nOut, nWeightParams + nOut + nUserWeightParams)) .reshape('f', numUsers, nOut); out.put(USER_WEIGHT_KEY, userWeightGradientView); return out; } }
protected INDArray createUserWeightMatrix(NeuralNetConfiguration conf, INDArray weightParamView, boolean initializeParameters) { FeedForwardLayer layerConf = (FeedForwardLayer) conf.getLayer(); if (initializeParameters) { Distribution dist = Distributions.createDistribution(layerConf.getDist()); return createWeightMatrix(numUsers, layerConf.getNOut(), layerConf.getWeightInit(), dist, weightParamView, true); } else { return createWeightMatrix(numUsers, layerConf.getNOut(), null, null, weightParamView, false); } }
map.put("Input size", String.valueOf(layer1.getNIn())); map.put("Output size", String.valueOf(layer1.getNOut())); map.put("Num Parameters", String.valueOf(layer1.initializer().numParams(c))); map.put("Activation Function", layer1.getActivationFn().toString());
protected INDArray createWeightMatrix(NeuralNetConfiguration conf, INDArray weightParamView, boolean initializeParameters) { org.deeplearning4j.nn.conf.layers.FeedForwardLayer layerConf = (org.deeplearning4j.nn.conf.layers.FeedForwardLayer) conf.getLayer(); if (initializeParameters) { Distribution dist = Distributions.createDistribution(layerConf.getDist()); return createWeightMatrix(layerConf.getNIn(), layerConf.getNOut(), layerConf.getWeightInit(), dist, weightParamView, true); } else { return createWeightMatrix(layerConf.getNIn(), layerConf.getNOut(), null, null, weightParamView, false); } }
public int numParams(NeuralNetConfiguration conf) { FeedForwardLayer layerConf = (FeedForwardLayer) conf.getLayer(); return super.numParams(conf) + numUsers * layerConf.getNOut(); // plus another user weight matrix }
int tsLength = itr.getTimeSeriesLength(); InputType outputType = lstmLayer.getOutputType(-1, inputType); int numParams = lstmLayer.initializer().numParams(lstmLayer); int updaterSize = (int) lstmLayer.getIUpdater().stateSize(numParams); int workingMemInferencePerEx = tsLength * 4 * lstmLayer.getNOut(); //Reduced by factor of tsLength if using workspace int fwdPassPerTimeStepTrainCache = tsLength * 6 * lstmLayer.getNOut(); int backpropWorkingSpace = (isGraves ? 9 : 6) * tsLength * lstmLayer.getNOut();
protected INDArray createBias(NeuralNetConfiguration conf, INDArray biasParamView, boolean initializeParameters) { org.deeplearning4j.nn.conf.layers.FeedForwardLayer layerConf = (org.deeplearning4j.nn.conf.layers.FeedForwardLayer) conf.getLayer(); return createBias(layerConf.getNOut(), layerConf.getBiasInit(), biasParamView, initializeParameters); }
private void nOutReplaceBuild(int layerNum, int nOut, Pair<WeightInit, Distribution> schemedist, Pair<WeightInit, Distribution> schemedistNext) { NeuralNetConfiguration layerConf = editedConfs.get(layerNum); Layer layerImpl = layerConf.getLayer(); //not a clone need to modify nOut in place FeedForwardLayer layerImplF = (FeedForwardLayer) layerImpl; layerImplF.setWeightInit(schemedist.getLeft()); layerImplF.setDist(schemedist.getRight()); layerImplF.setNOut(nOut); int numParams = layerImpl.initializer().numParams(layerConf); INDArray params = Nd4j.create(1, numParams); org.deeplearning4j.nn.api.Layer someLayer = layerImpl.instantiate(layerConf, null, 0, params, true); editedParams.set(layerNum, someLayer.params()); if (layerNum + 1 < editedConfs.size()) { layerConf = editedConfs.get(layerNum + 1); layerImpl = layerConf.getLayer(); //modify in place layerImplF = (FeedForwardLayer) layerImpl; layerImplF.setWeightInit(schemedistNext.getLeft()); layerImplF.setDist(schemedistNext.getRight()); layerImplF.setNIn(nOut); numParams = layerImpl.initializer().numParams(layerConf); if (numParams > 0) { params = Nd4j.create(1, numParams); someLayer = layerImpl.instantiate(layerConf, null, 0, params, true); editedParams.set(layerNum + 1, someLayer.params()); } } }
int nIn = ffl.getNIn(); if (nIn > 0) { inputType = InputType.feedForward(nIn);
@OptionMetadata( displayName = "activation function", description = "The activation function to use (default = Identity).", commandLineParamName = "activation", commandLineParamSynopsis = "-activation <specification>", displayOrder = 1 ) public Activation getActivationFunction() { return Activation.create(backend.getActivationFn()); }
public void setNOut(long nOut) { backend.setNOut(nOut); }
map.put("Input size", String.valueOf(layer1.getNIn())); map.put("Output size", String.valueOf(layer1.getNOut())); map.put("Num Parameters", String.valueOf(layer1.initializer().numParams(c))); map.put("Activation Function", layer1.getActivationFn().toString());
@OptionMetadata( displayName = "number of outputs", description = "The number of outputs.", commandLineParamName = "nOut", commandLineParamSynopsis = "-nOut <int>", displayOrder = 2 ) public long getNOut() { return backend.getNOut(); }
layerImpl.resetLayerDefaultConfig(); FeedForwardLayer layerImplF = (FeedForwardLayer) layerImpl; layerImplF.setWeightInit(scheme); layerImplF.setDist(dist); layerImplF.setNOut(nOut); layerImpl = layerConf.getLayer().clone(); layerImplF = (FeedForwardLayer) layerImpl; layerImplF.setWeightInit(schemeNext); layerImplF.setDist(distNext); layerImplF.setNIn(nOut);
public Map<String, INDArray> init(NeuralNetConfiguration conf, INDArray paramsView, boolean initializeParams) { Map<String, INDArray> params = super.init(conf, paramsView, initializeParams); FeedForwardLayer layerConf = (FeedForwardLayer) conf.getLayer(); int nIn = layerConf.getNIn(); int nOut = layerConf.getNOut(); int nWeightParams = nIn * nOut; int nUserWeightParams = numUsers * nOut; INDArray userWeightView = paramsView.get(NDArrayIndex.point(0), NDArrayIndex.interval(nWeightParams + nOut, nWeightParams + nOut + nUserWeightParams)); params.put(USER_WEIGHT_KEY, this.createUserWeightMatrix(conf, userWeightView, initializeParams)); conf.addVariable(USER_WEIGHT_KEY); return params; }
map.put("Input size", String.valueOf(layer1.getNIn())); map.put("Output size", String.valueOf(layer1.getNOut())); map.put("Num Parameters", String.valueOf(layer1.initializer().numParams(c))); map.put("Activation Function", layer1.getActivationFn().toString());
FeedForwardLayer outputLayer = (FeedForwardLayer) conf.getConf(conf.getConfs().size() - 1).getLayer(); DataSetIterator iter = new RecordReaderDataSetIterator( reader ,1,-1, outputLayer.getNOut());
@Override public int numParams(NeuralNetConfiguration conf) { org.deeplearning4j.nn.conf.layers.FeedForwardLayer layerConf = (org.deeplearning4j.nn.conf.layers.FeedForwardLayer) conf.getLayer(); int nIn = layerConf.getNIn(); int nOut = layerConf.getNOut(); // also equal to numClasses return nIn * nOut + nOut + nIn * nOut; //weights + bias + embeddings }