在Angular7项目中使用tensorflowjs
时,在访问tensor2d
对象的数值时遇到麻烦。
确实:
let tensor2d = tf.tensor2d( [[1,2],[3,4]])
let tensor2d_array = tensor2d.dataSync()
将给出形状为Array
的{{1}}对象,而不是我希望的(4,)
。
如何保存形状并获取张量数组。 (手动重塑并非在所有情况下都是可行的,因为在此项目中我无法访问js矩阵库。)
答案 0 :(得分:1)
dataSync和data返回平坦的typedArray。这意味着tensor2d_array
的形状为[4]。
与其获取与张量相同形状的数据,不如仅获取要检索的索引值,这将是实用的。话虽如此,如果由于某种原因,您想要先获取数据数组,然后再获取索引[i, j]
的值,则此answer展示了如何检索对象的元素[i, j]
数据是使用data
或dataSync
更新
自version 15
起,可以使用tensor.array()或tensor.arraySync()