Source

AI/Tensors/Classes/generators.js

import { Order } from 'blockly/javascript';
/**
 * @module Class
 * @category AI
 * @subcategory Tensor
 */
/**
 * Returns the tensor data as a nested array. The transfer of data is done synchronously.
 *
 * @param {Tensor} tensor The tensor to convert.
 * @returns {Array} tensor.arraySync().
 */
function arrayFromTensor(block, generator) {
    const tensor = generator.valueToCode(block, 'TENSOR', Order.NONE) || '';
    return [`${tensor}.arraySync()`, Order.VOID];
}
/**
 * Gets the shape of a TensorFlow.js tensor.
 *
 * @param {Tensor} tensor The tensor to find shape.
 * @returns {Array} tensor.shape.
 */
function tensorShape(block, generator) {
    const tensor = generator.valueToCode(block, 'TENSOR', Order.NONE) || '';
    return [`${tensor}.shape`, Order.VOID];
}
/**
 * Gets the value at a specific index of a TensorFlow.js tensor's shape.
 *
 * @param {Tensor} tensor The tensor to find shape.
 * @param {Number} index The index
 * @returns {Number | Number[]} tensor.shape[index].
 */
function valueFromTensorShape(block, generator) {
    const index = generator.valueToCode(block, 'INDEX', Order.NONE) || '';
    const tensor = generator.valueToCode(block, 'TENSOR', Order.NONE) || '';
    if (!tensor || !index)
        return [``, Order.VOID];
    return [`${tensor}.shape[${index}]`, Order.VOID];
}
export const classBlockGenerator = {
    ['array_from_tensor']: arrayFromTensor,
    ['tensor_shape']: tensorShape,
    ['value_from_tensor_shape']: valueFromTensorShape,
};
//# sourceMappingURL=generators.js.map