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
Source