如何在Tensorflow.js中将1D Tensor转换为常规JavaScript数组?
我的1D Tensor如下:
Tensor [-0.0005436, -0.0021222, 0.0006213, 0.0014624, 0.0012601, 0.0007024, -0.0001113, -0.0011119, -0.0021328, -0.0031764]
如何在Tensorflow.js中将1D Tensor转换为常规JavaScript数组?
我的1D Tensor如下:
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()
,它返回一个Promise,解析为TypedArray。
将 tf.tensor
转换为普通js数组,有array()
和arraySync()
两种方法。
例如,tf.tensor([1, 2, 5]).arraySync()