UNPKG

@hoff97/tensor-js

Version:

PyTorch like deep learning inferrence library

26 lines 922 B
import { CPUTensor } from '../../tensor/cpu/tensor'; import { incrementIndex } from '../../util/shape'; export function slice(x, starts, ends, axis, steps) { const rank = x.shape.length; const resultShape = [...x.shape]; let axIx = 0; for (let i = 0; i < rank && axIx < axis.length; i++) { if (i === axis[axIx]) { resultShape[i] = Math.ceil((ends[axIx] - starts[axIx]) / steps[axIx]); axIx++; } } const result = new CPUTensor(resultShape, undefined, x.dtype); const outIx = new Array(rank).fill(0); let inIx; for (let i = 0; i < result.size; i++) { inIx = new Array(rank); for (let j = 0; j < axis.length; j++) { inIx[axis[j]] = outIx[axis[j]] * steps[j] + starts[j]; } result.set(i, x.get(inIx)); incrementIndex(outIx, resultShape); } return result; } //# sourceMappingURL=slice.js.map