Source

AI/Tensors/Transformations/generators.js

import { Order } from 'blockly/javascript';
/**
 * @module Transformations
 * @category AI
 * @subcategory Tensor
 */
/**
 * Removes dimensions of size 1 from the shape of a tf.Tensor.
 *
 * @param {Tensor} tensor The input tensor to be squeezed.
 * @param {Array<Number>} axis An optional list of numbers. If specified, only squeezes the dimensions listed. The dimension index starts at 0. It is an error to squeeze a dimension that is not 1.
 * @returns {Tensor} tf.squeeze(tensor, axis).
 */
function squeezeTensor(block, generator) {
    const tensor = generator.valueToCode(block, 'TENSOR', Order.NONE) || ''; //tensor to squeeze
    const axis = generator.valueToCode(block, 'AXIS', Order.NONE) || ''; //axis
    return [`tf.squeeze(${tensor} ${axis.length ? `, ${axis}` : ''})`, Order.VOID];
}
/**
 * Reshapes a tf.Tensor to a given shape.
 *
 * @param {Tensor} tensor The tensor to be squeezed.
 * @param {Array<Number>} shape An array of integers defining the output tensor shape.
 * @returns {Tensor} tf.reshape(tensor, shape).
 */
function reshapeTensor(block, generator) {
    const tensor = generator.valueToCode(block, 'TENSOR', Order.NONE) || ''; //tensor to reshape
    const shape = generator.valueToCode(block, 'SHAPE', Order.NONE) || ''; //shape
    return [`tf.reshape(${tensor}, ${shape})`, Order.VOID];
}
export const transformationBlockGenerator = {
    ['squeeze']: squeezeTensor,
    ['reshape']: reshapeTensor,
};
//# sourceMappingURL=generators.js.map