UNPKG

@tensorflow/tfjs-core

Version:

Hardware-accelerated JavaScript library for machine intelligence

53 lines (52 loc) 3.31 kB
/** * @license * Copyright 2021 Google LLC. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============================================================================= */ /// <amd-module name="@tensorflow/tfjs-core/dist/ops/slice_util" /> import { TensorInfo } from '../tensor_info'; export type SliceInfo = { finalShapeSparse: number[]; finalShape: number[]; isIdentity: boolean; sliceDim0: boolean; isSimpleSlice: boolean; begin: number[]; end: number[]; strides: number[]; }; export declare function assertParamsValid(input: TensorInfo, begin: number[], size: number[]): void; /** Converts a binary mask to an array of axes. Used in stridedSlice(). */ export declare function maskToAxes(mask: number): number[]; /** Computes the output shape given the strided slice params. */ export declare function computeOutShape(begin: number[], end: number[], strides: number[]): number[]; export declare function stridesWithElidedDims(strides: number[], ellipsisInsertionIndex: number, numElidedAxes: number, inputShape: number[]): number[]; export declare function getNormalizedAxes(inputShape: number[], ellipsisAxes: number[], numInterpolatedAxes: number, begin: number[], end: number[], strides: number[], beginMask: number, endMask: number, ellipsisMask: number): { begin: number[]; end: number[]; strides: number[]; }; export declare function startIndicesWithElidedDims(beginMask: number, ellipsisInsertionIndex: number, numElidedAxes: number, originalBegin: number[], inputShape: number[]): number[]; export declare function stopIndicesWithElidedDims(endMask: number, ellipsisInsertionIndex: number, numElidedAxes: number, originalEnd: number[], inputShape: number[]): number[]; export declare function stridesForAxis(strides: number[], axis: number, ellipsisMask: number): number; export declare function startForAxis(beginMask: number, startIndices: number[], strides: number[], inputShape: number[], axis: number, ellipsisMask: number): number; export declare function stopForAxis(endMask: number, stopIndices: number[], strides: number[], inputShape: number[], axis: number, ellipsisMask: number): number; /** * Returns true if the slice occupies a continous set of elements in the * 'flat' space. */ export declare function isSliceContinous(shape: number[], begin: number[], size: number[]): boolean; export declare function computeFlatOffset(begin: number[], strides: number[]): number; export declare function parseSliceParams(x: TensorInfo, begin: number | number[], size?: number | number[]): number[][]; export declare function sliceInfo(xShape: number[], begin: number[], end: number[], strides: number[], beginMask: number, endMask: number, ellipsisMask: number, newAxisMask: number, shrinkAxisMask: number): SliceInfo;