Source

AI/Tensors/Creation/generators.js

import { Order } from 'blockly/javascript';
/**
 * @module Creation
 * @category AI
 * @subcategory Tensor
 */
/**
 * Creates rank-2 tf.Tensor with the provided values, shape and dtype.
 *
 * @param {Array<number>} values The values of the tensor. Can be nested array of numbers, or a flat array, or a TypedArray.
 * @param {Array<number>} shape The shape of the tensor. If not provided, it is inferred from values.
 * @param {Enumerator} dataType ('float32'|'int32') The data type.
 * @returns {Tensor} tf.tensor2d(values, shape, 'dataType').
 */
function createTwoDimensionTensor(block, generator) {
    const values = generator.valueToCode(block, 'TENSOR_VALUES', Order.NONE) || '';
    const shape = generator.valueToCode(block, 'TENSOR_SHAPE', Order.NONE) || '';
    const dataType = block.getFieldValue('dtype') || '';
    return [`tf.tensor2d(${values}, ${shape}, '${dataType}')`, Order.VOID];
}
/**
 * Creates rank-1 tf.Tensor with the provided values, shape and dtype.
 *
 * @param {Array<number>} values The values of the tensor. Can be array of numbers, or a TypedArray.
 * @param {Enumerator} dataType ('float32'|'int32') The data type.
 * @returns {Tensor} tf.tensor1d(values, 'dataType').
 */
function createVectorTensor(block, generator) {
    const values = generator.valueToCode(block, 'TENSOR_VALUES', Order.NONE) || '';
    const dataType = block.getFieldValue('dtype') || '';
    return [`tf.tensor1d(${values}, '${dataType}')`, Order.VOID];
}
/**
 * Creates a tf.Tensor with all elements set to 0.
 *
 * @param {Array<number>} shape An array of integers defining the output tensor shape.
 * @param {Enumerator} dataType ('float32'|'int32') The data type.
 * @returns {Tensor} tf.zeros(shape, 'dataType').
 */
function zeros(block, generator) {
    const shape = generator.valueToCode(block, 'TENSOR_SHAPE', Order.NONE) || '';
    const dataType = block.getFieldValue('dtype') || '';
    return [`tf.zeros(${shape}, '${dataType}')`, Order.VOID];
}
/**
 * Creates a tf.Tensor with all elements set to 0 with the same shape as the given tensor.
 *
 * @param {Tensor} tensor The tensor of required shape.
 * @returns {Tensor} tf.zerosLike(tensor).
 */
function zerosLike(block, generator) {
    const tensor = generator.valueToCode(block, 'TENSOR', Order.NONE) || '';
    return [`tf.zerosLike(${tensor})`, Order.VOID];
}
export const creationBlockGenerator = {
    create_multi_dimension_tensor: createTwoDimensionTensor,
    create_vector_tensor: createVectorTensor,
    zeros: zeros,
    zeros_like: zerosLike,
};
//# sourceMappingURL=generators.js.map