static splitShape(dims, axis, split, numOutputs) {
        if (split.length === 0) {
            if (!numOutputs) {
                throw new Error('need to know number of outputs when the \'split\' attribute is not specified');
            }
            SplitUtil.determineSplit(dims[axis], numOutputs, split);
        }
        const shapes = [];
        const offsets = [0];
        for (let i = 0; i < split.length; ++i) {
            if (i !== 0) {
                offsets.push(offsets[i - 1] + split[i - 1]);
            }
            const shape = dims.slice();
            shape[axis] = split[i];
            shapes.push(shape);
        }
        return [shapes, offsets];
    }
/**
     * Calculates new Shapes from existing one and the splits given along the axis provides
     * @param dims Shape of the Tensor to be splitted into two or more Shapes
     * @param axis The dimension along which the Tensor will be split
     * @param splits Offsets for the start of each split
     */
Calculates new Shapes from existing one and the splits given along the axis provides
@param dims Shape of the Tensor to be splitted into two or more Shapes
@param axis The dimension along which the Tensor will be split
@param splits Offsets for the start of each split
Calculates new Shapes from existing one and the splits given along the axis provides @param dims Shape of the Tensor to be splitted into two or more Shapes @param axis The dimension along which the Tensor will be split @param splits Offsets for the start of each split
static splitShape(dims, axis, split, numOutputs) {
        if (split.length === 0) {
            if (!numOutputs) {
                throw new Error('need to know number of outputs when the \'split\' attribute is not specified');
            }
            SplitUtil.determineSplit(dims[axis], numOutputs, split);
        }
        const shapes = [];
        const offsets = [0];
        for (let i = 0; i < split.length; ++i) {
            if (i !== 0) {
                offsets.push(offsets[i - 1] + split[i - 1]);
            }
            const shape = dims.slice();
            shape[axis] = split[i];
            shapes.push(shape);
        }
        return [shapes, offsets];
    }
static splitShape ( dims , axis , split , numOutputs ) { if ( split . length === 0 ) { if ( ! numOutputs ) { throw new Error ( 'need to know number of outputs when the \'split\' attribute is not specified' ) ; } SplitUtil . determineSplit ( dims [ axis ] , numOutputs , split ) ; } const shapes = [ ] ; const offsets = [ 0 ] ; for ( let i = 0 ; i < split . length ; ++ i ) { if ( i !== 0 ) { offsets . push ( offsets [ i - 1 ] + split [ i - 1 ] ) ; } const shape = dims . slice ( ) ; shape [ axis ] = split [ i ] ; shapes . push ( shape ) ; } return [ shapes , offsets ] ; }
Calculates new Shapes from existing one and the splits given along the axis provides
 @param dims Shape of the Tensor to be splitted into two or more Shapes
 @param axis The dimension along which the Tensor will be split
 @param splits Offsets for the start of each split
Calculates new Shapes from existing one and the splits given along the axis provides @param dims Shape of the Tensor to be splitted into two or more Shapes @param axis The dimension along which the Tensor will be split @param splits Offsets for the start of each split