ND4J ベクトル生成〜ワンポイントレッスン的な〜

ベクトルの生成

ND4Jで配列(ベクトル)の初期化を行う(ベクトルの生成)方法です。

参考にするサイトはこちらです。(本家家元のドキュメント)英語なので翻訳して見ました。

実行結果

上のキャプチャのように、Nd4jクラスの性的メソッドで簡単に作成できます。

サンプルコード> ※Gitからダウンロード可能

public class FirstNd4j {
	public static void main(String[] args) {
		// クラスのインスタンス化
		FirstNd4j test = new FirstNd4j();
		
		INDArray zeros5 = Nd4j.zeros(5);
		System.out.print("Nd4j.zeros(5) -> ");
		System.out.println(zeros5);
		// 自分で作成したメソッドを使います。
		INDArray zero5_3 = test.createZeroINDArray(5, 3);
		System.out.print("Nd4j.zeros(5, 3) -> ");
		System.out.println(zero5_3);

		// 生成したNDArrayを3で埋める
		INDArray add3 = zero5_3.add(3);
		// 自作メソッドで表示します。
		printArray("INDArray.add(3)", add3);

		System.out.println("*** 0-1の間で乱数を生成する(2次元配列) ***");
		printArray("Nd4j.rand(2, 3)", Nd4j.rand(2, 3));

		System.out.println("*** 3次元以上 ***"); 
		printArray("Nd4j.rand(new int[] {1, 2, 3}])", Nd4j.rand(new int[] {1, 2, 3}));

		System.out.println("*** 平均ゼロ、標準偏差1のガウス乱数を生成する ***");
		printArray("Nd4j.randn(2, 3)", Nd4j.randn(2, 3));
		printArray("Nd4j.randn(new int[] {1, 2, 3}])", Nd4j.randn(new int[] {1, 2, 3}));
	}

	/**
	 * 静的メソッドです。(staticがつきます)
	 * このクラスを起動するときに他の読み込むクラスに同じメソッドは定義できません。
	 * 実行時エラーになります。
	 * 
	 * @param formula 表示する計算式
	 * @param vector ベクトル(配列)
	 */
	public static void printArray(String formula, INDArray vector) {
		System.out.print(formula + " -> ");
		System.out.println(vector);
	}
	/**
	 * このクラスのインスタンスメソッドです。
	 * 0のベクトルを生成します。
	 * 
	 * @param row 行の数
	 * @param col 列の数
	 * @return 生成された行列
	 */
	private INDArray createZeroINDArray(int row, int col) {
		return Nd4j.zeros(row, col);
	}
	・
	・
	・
}



関連ページ一覧