インテル® DAAL プログラミング・ガイド

バッチ処理とオンライン処理

オンライン処理モードは、データがブロック i = 1, 2, 3, … nblocks で到着すると仮定します。

アルゴリズムの入力

SVD アルゴリズムの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

data

次を表す数値テーブルのポインター。

  • バッチ処理の場合、因数分解される n x p 行列 X 全体。
  • オンライン処理の場合、オンライン処理モードの現在のデータブロックを表す Xni x p 部分行列。各データブロックは十分なサイズ (ni > p) が必要なことに注意してください。

入力は、NumericTable の派生クラスのオブジェクトです。

アルゴリズムのパラメーター

SVD アルゴリズムのパラメーターは次のとおりです。

パラメーター

デフォルト値

説明

algorithmFPType

double

アルゴリズムが中間計算に使用する浮動小数点の型。float または double を指定できます。

method

defaultDense

パフォーマンス指向の計算メソッド。アルゴリズムでサポートされている唯一のメソッドです。

leftSingularMatrix

requiredInPackedForm

左特異ベクトルの行列が必要かどうかを指定します。次のいずれか。

  • notRequired - 行列は必要ありません。
  • requiredInPackedForm - パックド形式の行列が必要です。

rightSingularMatrix

requiredInPackedForm

右特異ベクトルの行列が必要かどうかを指定します。次のいずれか。

  • notRequired - 行列は必要ありません。
  • requiredInPackedForm - パックド形式の行列が必要です。

アルゴリズムの出力

SVD アルゴリズムは次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

結果 ID

結果

singularValues

特異値 (行列 Σ の対角) を含む 1 x p 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrixPackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

leftSingularMatrix

左特異ベクトル (行列 U) を含む n x p 数値テーブルのポインター。左特異ベクトルが必要ない場合は NULL を渡します。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrixPackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

rightSingularMatrix

右特異ベクトル (行列 V) を含む p x p 数値テーブルのポインター。右特異ベクトルが必要ない場合は NULL を渡します。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrixPackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

サンプル

インテル® DAAL ディレクトリーの次のサンプルを参照してください。

C++:

Java*: