如何将1D张量转换为常规javascript数组?

时间:2018-06-18 01:42:19

标签: tensorflow.js

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

我的1D Tensor是这样的:

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

2 个答案:

答案 0 :(得分:8)

你可以使用.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(),它将Promise解析为TypedArray。

答案 1 :(得分:0)

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

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