我正在使用 Tensorflow.js,我想绘制一些存储为 tf.Tensors 的数据。我找不到将它们转换为普通 JS 数字的方法。
const a = tf.Scalar(1)
const b = tf.Scalar(2)
var array = []
// Now o want to push the numbers 1 and 2 to mye array
array.push(a)
array.push(b)
这段代码给了我一个张量对象数组。我想要一个数字数组。知道如何继续吗?谢谢。
最佳答案
.dataSync()
下载 GPU 的值并返回 Tensor 中包含的值的 Float32Array
。因此,如果您想将值作为张量存储在数组中,并希望从中获取数字数组,您可以使用 map()
映射它。创建下载值的数组,并且由于您在示例中使用标量,因此您可以直接映射到 Float32Array 中的第一个元素来获取其值:
let values = array.map(t => t.dataSync()[0])
示例:
const a = tf.scalar(1)
const b = tf.scalar(2)
var array = []
array.push(a)
array.push(b)
let values = array.map(t => t.dataSync()[0])
console.log(values);
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6014060a1320504e51514e52" rel="noreferrer noopener nofollow">[email protected]</a>">
</script>
关于javascript - Tensorflow.js tf.Tensor转JS数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50683081/