當前位置: 首頁>>代碼示例>>Java>>正文


Java Nd4j類代碼示例

本文整理匯總了Java中org.nd4j.linalg.factory.Nd4j的典型用法代碼示例。如果您正苦於以下問題:Java Nd4j類的具體用法?Java Nd4j怎麽用?Java Nd4j使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


Nd4j類屬於org.nd4j.linalg.factory包,在下文中一共展示了Nd4j類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: fetch

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
@Override
public void fetch(int numExamples) {
	float[][] featureData = new float[numExamples][0];
	float[][] labelData = new float[numExamples][0];

	int examplesRead = 0;

	for (; examplesRead < numExamples; examplesRead++) {
		if (cursor + examplesRead >= m_allFileNames.size()) {
			break;
		}
		Entry<String, String> entry = m_allFileNames.get(cursor + examplesRead);

		featureData[examplesRead] = imageFileNameToMnsitFormat(entry.getValue());
		labelData[examplesRead] = toLabelArray(entry.getKey());
	}
	cursor += examplesRead;

	INDArray features = Nd4j.create(featureData);
	INDArray labels = Nd4j.create(labelData);
	curr = new DataSet(features, labels);
}
 
開發者ID:braeunlich,項目名稱:anagnostes,代碼行數:23,代碼來源:NumbersDataFetcher.java

示例2: nd4JExample

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
public void nd4JExample() {
    double[] A = {
        0.1950, 0.0311,
        0.3588, 0.2203,
        0.1716, 0.5931,
        0.2105, 0.3242};

    double[] B = {
        0.0502, 0.9823, 0.9472,
        0.5732, 0.2694, 0.916};

    
    INDArray aINDArray = Nd4j.create(A,new int[]{4,2},'c');
    INDArray bINDArray = Nd4j.create(B,new int[]{2,3},'c');
    
    INDArray cINDArray;
    cINDArray = aINDArray.mmul(bINDArray);
    for(int i=0; i<cINDArray.rows(); i++) {
        System.out.println(cINDArray.getRow(i));
    }
}
 
開發者ID:PacktPublishing,項目名稱:Machine-Learning-End-to-Endguide-for-Java-developers,代碼行數:22,代碼來源:MathExamples.java

示例3: readTestData

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
private static List<TrainingData> readTestData(String fn) {
    int[] shape = { 3, 1 };
    List<TrainingData> trainingDataSet = new ArrayList<>();
    try {
        CSVReader reader = new CSVReader(new FileReader(fn));
        String[] row;
        while ((row = reader.readNext()) != null) {
            int type = Integer.parseInt(row[0]);
            double f1 = Double.parseDouble(row[1]);
            double f2 = Double.parseDouble(row[2]);
            double f3 = Double.parseDouble(row[3]);
            TrainingData trainingData = new TrainingData();
            trainingData.input = Nd4j.create(new double[] { f1, f2, f3 }, shape);
            trainingData.output = Nd4j.zeros(shape);
            trainingData.output.putScalar(type, (double) 1);
            trainingDataSet.add(trainingData);
        }
    } catch (java.io.IOException e) {
    }
    return trainingDataSet;
}
 
開發者ID:apuder,項目名稱:ActivityMonitor,代碼行數:22,代碼來源:Main.java

示例4: collisionAvoidance

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
/**
 * Returns a velocity vector for a specific boid, given a set of other boids and scaling factor,
 * such that the boid will avoid collisions.
 *
 * @param currentBoid   The boid to compute the velocity vector for.
 * @param otherBoids    A set of {@link Boid}s.
 * @param scalingFactor The tuning parameter for the collision avoidance rule. High values result
 *                      in large vectors.
 * @return A velocity vector representing the suggested velocity for the specified boid such that
 * the specific boid steers away from other boids in the flock.
 */
private INDArray collisionAvoidance(
    final O currentBoid,
    final Set<? extends O> otherBoids,
    final double scalingFactor
) {
  return otherBoids.stream()
      .filter(boid -> !boid.equals(currentBoid))
      .map(O::getPosition)
      .reduce(
          Nd4j.create(currentBoid.getPosition().shape()),
          INDArray::add)
      .div(otherBoids.size())
      .sub(currentBoid.getPosition())
      .mul(scalingFactor);
}
 
開發者ID:delta-leonis,項目名稱:algieba,代碼行數:27,代碼來源:SimpleBoid.java

示例5: velocityMatching

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
/**
 * Returns a velocity vector for a specific boid, given a set of other boids and a range, such
 * that the boid will match its velocity vector with other boids within that range.
 *
 * @param currentBoid The boid to compute the velocity vector for.
 * @param otherBoids  A set of {@link Boid}s.
 * @param range       The range within which boids will be taken into account in computing the
 *                    velocity vector.
 * @return A velocity vector representing the suggested velocity for the specified boid such that
 * the specific boid matches its velocity vector with other boids within its range.
 */
private INDArray velocityMatching(
    final O currentBoid,
    final Set<? extends O> otherBoids,
    final double range
) {
  return otherBoids.stream()
      .filter(boid -> !boid.equals(currentBoid))
      .map(O::getVelocity)
      .filter(boid ->
          boid.distance2(currentBoid.getPosition()) < range)
      .reduce(
          Nd4j.create(currentBoid.getPosition().shape()),
          (velocity, nextBoid)
              -> velocity.sub(
              nextBoid.sub(
                  currentBoid.getVelocity())));
}
 
開發者ID:delta-leonis,項目名稱:algieba,代碼行數:29,代碼來源:SimpleBoid.java

示例6: apply

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
/**
 * Computes the filtered {@link Distribution} (mean and covariance) using the supplied state-,
 * measurement-, and control-transition matrices, and the supplied control input, process noise,
 * observation noise, and current state.
 *
 * @param stateTransitionMatrix       The state-transition matrix used in projecting the {@link
 *                                    Distribution}.
 * @param measurementTransitionMatrix The measurement-transition matrix used in computing the
 *                                    measurement based on the supplied state.
 * @param controlTransitionMatrix     The control-transition matrix used in computing the effect
 *                                    of the control input on the resultant {@link Distribution}.
 * @param controlInput                The control input.
 * @param processCovariance           the process covariance
 * @param observationNoise            The {@link Distribution} of observation noise
 * @param state                       The {@link Distribution} of the latest state.
 * @return The filtered state.
 */
public Distribution apply(
    final INDArray stateTransitionMatrix,
    final INDArray measurementTransitionMatrix,
    final INDArray controlTransitionMatrix,
    final INDArray controlInput,
    final INDArray processCovariance,
    final Distribution observationNoise,
    final Distribution state
) {
  return apply((stateMean, controlVector) ->
          stateTransitionMatrix
              .mmul(stateMean)
              .add(controlTransitionMatrix
                  .mmul(controlTransitionMatrix.mmul(controlVector)))
              .add(processCovariance),
      measurementTransitionMatrix::mul,
      controlInput,
      Nd4j.eye(stateTransitionMatrix.rows()),
      Nd4j.eye(measurementTransitionMatrix.rows()),
      processCovariance,
      observationNoise,
      state);
}
 
開發者ID:delta-leonis,項目名稱:algieba,代碼行數:41,代碼來源:ExtendedKalmanFilter.java

示例7: getTrainingData

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
@Override
public FederatedDataSet getTrainingData() {
    Random rand = new Random(seed);
    double[] sum = new double[N_SAMPLES];
    double[] input1 = new double[N_SAMPLES];
    double[] input2 = new double[N_SAMPLES];
    for (int i = 0; i < N_SAMPLES; i++) {
        input1[i] = MIN_RANGE + (MAX_RANGE - MIN_RANGE) * rand.nextDouble();
        input2[i] = MIN_RANGE + (MAX_RANGE - MIN_RANGE) * rand.nextDouble();
        sum[i] = input1[i] + input2[i];
    }
    INDArray inputNDArray1 = Nd4j.create(input1, new int[]{N_SAMPLES, 1});
    INDArray inputNDArray2 = Nd4j.create(input2, new int[]{N_SAMPLES, 1});
    INDArray inputNDArray = Nd4j.hstack(inputNDArray1, inputNDArray2);
    INDArray outPut = Nd4j.create(sum, new int[]{N_SAMPLES, 1});
    DataSet dataSet = new DataSet(inputNDArray, outPut);
    dataSet.shuffle();
    return new FederatedDataSetImpl(dataSet);
}
 
開發者ID:mccorby,項目名稱:FederatedAndroidTrainer,代碼行數:20,代碼來源:SumDataSource.java

示例8: getTestData

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
@Override
public FederatedDataSet getTestData() {
    Random rand = new Random(seed);
    int numSamples = N_SAMPLES/10;
    double[] sum = new double[numSamples];
    double[] input1 = new double[numSamples];
    double[] input2 = new double[numSamples];
    for (int i = 0; i < numSamples; i++) {
        input1[i] = MIN_RANGE + (MAX_RANGE - MIN_RANGE) * rand.nextDouble();
        input2[i] = MIN_RANGE + (MAX_RANGE - MIN_RANGE) * rand.nextDouble();
        sum[i] = input1[i] + input2[i];
    }
    INDArray inputNDArray1 = Nd4j.create(input1, new int[]{numSamples, 1});
    INDArray inputNDArray2 = Nd4j.create(input2, new int[]{numSamples, 1});
    INDArray inputNDArray = Nd4j.hstack(inputNDArray1, inputNDArray2);
    INDArray outPut = Nd4j.create(sum, new int[]{numSamples, 1});
    return new FederatedDataSetImpl(new DataSet(inputNDArray, outPut));
}
 
開發者ID:mccorby,項目名稱:FederatedAndroidTrainer,代碼行數:19,代碼來源:SumDataSource.java

示例9: testSVDPCA

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
@Test
public void testSVDPCA() throws Exception {
  double[][] data = getDoubles();

  Map<String, INDArray> weightTable = new TreeMap<>();
  Random r = new Random();
  for (double[] d : data) {
    byte[] bytes = new byte[10];
    r.nextBytes(bytes);
    weightTable.put(new String(bytes), Nd4j.create(d));
  }
  Map<String, INDArray> svdPCA = Par2HierUtils.svdPCA(weightTable, 2);
  assertEquals(weightTable.size(), svdPCA.size());
  for (Map.Entry<String, INDArray> e : svdPCA.entrySet()) {
    assertEquals(2, e.getValue().columns());
    assertNotNull(weightTable.get(e.getKey()));
  }
}
 
開發者ID:tteofili,項目名稱:par2hier,代碼行數:19,代碼來源:Par2HierUtilsTest.java

示例10: State

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
public State(
    final int id,
    final double timestamp,
    final double x,
    final double y,
    final double orientation,
    final TeamColor teamColor
) {
  this(
      id,
      new SimpleDistribution(Nd4j.create(
          new double[]{
              timestamp,
              x,
              y,
              orientation
          },
          new int[]{4, 1}), Nd4j.eye(4)),
      teamColor);
}
 
開發者ID:delta-leonis,項目名稱:subra,代碼行數:21,代碼來源:Player.java

示例11: strategize

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
/**
 * @param gameBuffer A {@link List} of {@link Tuple2} containing a game state with the
 *                   corresponding formation, and a mapping from {@link Player} to a vector
 *                   representing the difference between the agent's current position and the
 *                   desired position.
 * @return The {@link Strategy.Supplier strategy} which minimizes the difference between {@link
 * Player agent} positions and their {@link Formation} positions.
 */
public Strategy.Supplier strategize(
    final List<Tuple2<F, Map<PlayerIdentity, Tuple2<Player, INDArray>>>> gameBuffer
) {
  return () ->
      gameBuffer.get(0).getT1().getPlayers().stream()
          .collect(Collectors.toMap(
              Player::getIdentity,
              player -> new PlayerCommand.State(
                  Nd4j.vstack(Vectors.rotatePlanarCartesian(Nd4j.vstack(
                      this.computeCoordinateMagnitude(gameBuffer, player, 0),
                      this.computeCoordinateMagnitude(gameBuffer, player, 1)),
                      -1 * player.getOrientation()),
                      this.computeCoordinateMagnitude(gameBuffer, player, 2)),
                  0,
                  0,
                  0)));
}
 
開發者ID:delta-leonis,項目名稱:subra,代碼行數:26,代碼來源:PSDFormationDeducer.java

示例12: apply

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
@Override
public Publisher<PositionFormation> apply(final Publisher<G> inputPublisher) {
  return Flux.from(inputPublisher)
      .map(game ->
          new PositionFormation(
              game.getPlayers().stream()
                  .filter(player -> player.getTeamColor().equals(this.getTeamColor()))
                  .collect(Collectors.toMap(
                      Player::getIdentity,
                      player ->
                          Nd4j.vstack(
                              game.getBall().getXY()
                                  .add(Transforms
                                      .unitVec(game.getBall().getXY().sub(player.getXY()))
                                      .mul(this.getDistanceFromBall())),
                              Nd4j.create(new double[]{
                                  Math.acos(Transforms.cosineSim(
                                      player.getXY(),
                                      game.getBall().getXY()))}))))));
}
 
開發者ID:delta-leonis,項目名稱:subra,代碼行數:21,代碼來源:BallTrackerFormationDeducer.java

示例13: apply

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
@Override
public Publisher<MovingBall> apply(final Publisher<I> inputPublisher) {
  return Flux.from(inputPublisher)
      .scan(
          new MovingBall.State(0, 0, 0, 0, 0, 0, 0),
          (previousResult, input) -> input.getBalls().stream()
              .reduce((previousBall, foundBall) ->
                  new MovingBall.State(
                      this.kalmanFilter.apply(
                          getStateTransitionMatrix(
                              (foundBall.getTimestamp() - previousBall.getTimestamp())
                                  / 1000000d),
                          MEASUREMENT_TRANSITION_MATRIX,
                          CONTROL_TRANSITION_MATRIX,
                          Nd4j.zeros(7, 1),
                          PROCESS_COVARIANCE_MATRIX,
                          new SimpleDistribution(
                              previousBall.getState().getMean(),
                              MEASUREMENT_COVARIANCE_MATRIX),
                          foundBall.getState())))
              .orElse(new MovingBall.State(0, 0, 0, 0, 0, 0, 0)));
}
 
開發者ID:delta-leonis,項目名稱:subra,代碼行數:23,代碼來源:MovingBallsKalmanFilter.java

示例14: getConceptVector

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
public INDArray getConceptVector(Concept c) {

		Tokenizer tok = SimpleTokenizer.INSTANCE;

		List<INDArray> vectors = new ArrayList<INDArray>();
		int countUnk = 0;
		for (String word : tok.tokenize(c.name.toLowerCase().trim())) {
			if (wordVectors.hasWord(word))
				vectors.add(wordVectors.getWordVectorMatrix(word));
			else {
				vectors.add(unkVector);
				countUnk++;
			}
		}
		if (vectors.size() == countUnk)
			return null; // all tokens unknown
		INDArray allVectors = Nd4j.vstack(vectors);

		// sum or mean is irrelevant for cosine similarity
		INDArray conceptVector = allVectors.mean(0);

		return conceptVector;
	}
 
開發者ID:UKPLab,項目名稱:ijcnlp2017-cmaps,代碼行數:24,代碼來源:WordEmbeddingDistance.java

示例15: fromText

import org.nd4j.linalg.factory.Nd4j; //導入依賴的package包/類
private static Pair<List<String>, INDArray> fromText(String wordFilePath) throws IOException {
	BufferedReader reader = new BufferedReader(Common.asReaderUTF8Lenient(new FileInputStream(new File(wordFilePath))));
	String fstLine = reader.readLine();
	int vocabSize = Integer.parseInt(fstLine.split(" ")[0]);
	int layerSize = Integer.parseInt(fstLine.split(" ")[1]);
	List<String> wordVocab = Lists.newArrayList();
	INDArray wordVectors = Nd4j.create(vocabSize, layerSize);
	int n = 1;
	String line;
	while ((line = reader.readLine()) != null) {
		String[] values = line.split(" ");
		wordVocab.add(values[0]);
		Preconditions.checkArgument(layerSize == values.length - 1, "For file '%s', on line %s, layer size is %s, but found %s values in the word vector",
				wordFilePath, n, layerSize, values.length - 1); // Sanity check
		for (int d = 1; d < values.length; d++) wordVectors.putScalar(n - 1, d - 1, Float.parseFloat(values[d]));
		n++;
	}
	return new Pair<>(wordVocab, wordVectors);
}
 
開發者ID:IsaacChanghau,項目名稱:Word2VecfJava,代碼行數:20,代碼來源:WordVectorSerializer.java


注:本文中的org.nd4j.linalg.factory.Nd4j類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。