ExtractArrayView

NeuralNetwork.ExtractArrayView(data, idx_list, idx_start, idx_cnt)

ArrayViewから指定されたインデックスのデータを抜き出して返す。

引数:
  • data (ArrayView) – 抽出元
  • idx_list (int[]) – インデックスの配列
  • idx_start (int) – 抽出するデータの開始位置
  • idx_cnt (int) – 抽出するデータの数

ソース

ExtractArrayView(data, idx_list, idx_start, idx_cnt) {
    // 1個分のデータのサイズ
    var element_size = data.shape.slice(1).reduce((x, y) => x * y);

    // 抽出元のArrayViewの各次元の要素数
    var shape = data.shape.slice();

    // 戻り値のArrayViewの最初の次元の要素数をidx_cntにする。
    shape[0] = idx_cnt;

    // 戻り値のArrayViewを作る。
    var X = new ArrayView(shape);

    // コピー先の位置
    var dst = 0;

    // idx_startの位置からidx_cnt個のデータをコピーする。
    for (var idx = idx_start; idx < idx_start + idx_cnt; idx++) {
        // 抽出元の位置
        var src = idx_list[idx] * element_size;

        // 1個分のデータをコピーする。
        for (var i = 0; i < element_size; i++) {
            X.dt[dst] = data.dt[src];
            src++;
            dst++;
        }
    }

    return X;
}