opennlp-dl/src/main/java/opennlp/tools/dl/RNN.java [300:319]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      INDArray pm = Nd4j.getExecutioner().execAndReturn(new SoftMax(y)).outputArguments().get(0).ravel();

      List<Pair<Integer, Double>> d = new LinkedList<>();
      for (int pi = 0; pi < vocabSize; pi++) {
        d.add(new Pair<>(pi, pm.getDouble(0, pi)));
      }
      try {
        EnumeratedDistribution<Integer> distribution = new EnumeratedDistribution<>(d);

        int ix = distribution.sample();

        x = Nd4j.zeros(vocabSize, 1);
        x.putScalar(ix, 1);
        ixes.putScalar(t, ix);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    return getSampleString(ixes);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



opennlp-dl/src/main/java/opennlp/tools/dl/StackedRNN.java [318:337]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      INDArray pm = Nd4j.getExecutioner().execAndReturn(new SoftMax(y)).outputArguments().get(0).ravel();

      List<Pair<Integer, Double>> d = new LinkedList<>();
      for (int pi = 0; pi < vocabSize; pi++) {
        d.add(new Pair<>(pi, pm.getDouble(0, pi)));
      }
      try {
        EnumeratedDistribution<Integer> distribution = new EnumeratedDistribution<>(d);

        int ix = distribution.sample();

        x = Nd4j.zeros(vocabSize, 1);
        x.putScalar(ix, 1);
        ixes.putScalar(t, ix);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    return getSampleString(ixes);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



