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;
}