如何将一维张量转换为常规的 javascript 数组?



如何在Tensorflow.js中将一维张量转换为常规Javascript数组?

我的一维张量是这样的:

Tensor [-0.0005436, -0.0021222, 0.0006213, 0.0014624, 0.0012601, 0.0007024, -0.0001113, -0.0011119, -0.0021328, -0.0031764]

您可以使用.dataSync()来获取TypedArray中张量的值,如果您想要一个标准的JS数组,则可以使用Array.from(),它从类似数组的对象中创建数组。

const tensor = tf.tensor1d([1, 2, 3]);
const values = tensor.dataSync();
const arr = Array.from(values);
console.log(values);
console.log(arr);
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.14.1/dist/tf.min.js"></script>

请记住,在值准备就绪之前,使用.dataSync()会阻止 UI 线程,这可能会导致性能问题。如果要异步加载值,可以使用.data(),它将返回解析为 TypedArray 的 Promise。

要将tf.tensor转换为纯 js 数组,有array()arraySync()方法。

例如tf.tensor([1, 2, 5]).arraySync()

最新更新