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
Source