@tensorflow/tfjs-layers
Version: 
TensorFlow layers API in JavaScript
90 lines (89 loc) • 3.56 kB
TypeScript
/**
 * @license
 * Copyright 2023 Google LLC.
 * 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-layers/dist/layers/nlp/preprocessing/start_end_packer" />
/**
 *  Start End Packer implementation based on `tf.layers.Layer`.
 */
import { Tensor, Tensor1D, Tensor2D, serialization } from '@tensorflow/tfjs-core';
import { Layer, LayerArgs } from '../../../engine/topology';
export declare interface StartEndPackerArgs extends LayerArgs {
    /**
     * Integer. The desired output length.
     */
    sequenceLength: number;
    /**
     * Integer or string. The ID or token that is to be placed at the start of
     * each sequence. The dtype must match the dtype of the input tensors to the
     * layer. If undefined, no start value will be added.
     */
    startValue?: number | string;
    /**
     * Integer or string. The ID or token that is to be placed at the end of each
     * input segment. The dtype must match the dtype of the input tensors to the
     * layer. If undefined, no end value will be added.
     */
    endValue?: number | string;
    /**
     * Integer or string. The ID or token that is to be placed into the unused
     * positions after the last segment in the sequence. If undefined, 0 or ''
     * will be added depending on the dtype of the input tensor.
     */
    padValue?: number | string;
}
export declare interface StartEndPackerOptions {
    /**
     * Pass to override the configured `sequenceLength` of the layer.
     */
    sequenceLength?: number;
    /**
     * Pass `false` to not append a start value for this input.
     * Defaults to true.
     */
    addStartValue?: boolean;
    /**
     * Pass `false` to not append an end value for this input.
     * Defaults to true.
     */
    addEndValue?: boolean;
}
/**
 * Adds start and end tokens to a sequence and pads to a fixed length.
 *
 *  This layer is useful when tokenizing inputs for tasks like translation,
 *  where each sequence should include a start and end marker. It should
 *  be called after tokenization. The layer will first trim inputs to fit, then
 *  add start/end tokens, and finally pad, if necessary, to `sequence_length`.
 *
 *  Input should be either a `tf.Tensor[]` or a dense `tf.Tensor`, and
 *  either rank-1 or rank-2.
 */
export declare class StartEndPacker extends Layer {
    /** @nocollapse */
    static readonly className = "StartEndPacker";
    private sequenceLength;
    private startValue?;
    private endValue?;
    private padValue?;
    constructor(args: StartEndPackerArgs);
    call(inputs: Tensor | Tensor[], kwargs?: StartEndPackerOptions): Tensor | Tensor2D;
    /**
     * Exactly like `call` except also returns a boolean padding mask of all
     * locations that are filled in with the `padValue`.
     */
    callAndReturnPaddingMask(inputs: Tensor | Tensor[], kwargs?: StartEndPackerOptions): [Tensor1D | Tensor2D, Tensor1D | Tensor2D];
    getConfig(): serialization.ConfigDict;
}