将复杂张量转换为 JS 数组
Converting Complex Tensors to JS Arrays
当使用data() 或dataSync() 函数将复杂张量转换为JS 数组时,返回的数组是原始张量大小的两倍,包含实部和虚部作为两个不同的值。我期待一个复数数组。
async function convertToArray(){
r = tf.tensor([1,2,3])
i = tf.tensor([4,5,6])
c = tf.complex(r,i)
arr = await c.dataSync()
console.log(arr)
};
convertToArray();
输出为:Float32Array(6) [ 1, 4, 2, 5, 3, 6 ]
而预期的输出是一个像这样的复杂数组:[ { re: 1, im: 4 }, { re: 2, im: 5 }, { re: 3, im: 6 } ]
如果我使用 array() 或 arraySync() 函数,我会收到“错误:[3] 与输入大小不匹配”错误。
r = tf.tensor([1,2,3])
i = tf.tensor([4,5,6])
c = tf.complex(r,i)
arr = await c.dataSync()
// convert to an array of object
t = arr.reduce((a, b, i) => i % 2 === 0 ?
[...a, [b]] :
[...a.slice(0, a.length - 1), a[a.length - 1].concat(b)], [])
.map(([a, b]) => ({ re: a, im: b }))
console.log(t)
当使用data() 或dataSync() 函数将复杂张量转换为JS 数组时,返回的数组是原始张量大小的两倍,包含实部和虚部作为两个不同的值。我期待一个复数数组。
async function convertToArray(){
r = tf.tensor([1,2,3])
i = tf.tensor([4,5,6])
c = tf.complex(r,i)
arr = await c.dataSync()
console.log(arr)
};
convertToArray();
输出为:Float32Array(6) [ 1, 4, 2, 5, 3, 6 ] 而预期的输出是一个像这样的复杂数组:[ { re: 1, im: 4 }, { re: 2, im: 5 }, { re: 3, im: 6 } ]
如果我使用 array() 或 arraySync() 函数,我会收到“错误:[3] 与输入大小不匹配”错误。
r = tf.tensor([1,2,3])
i = tf.tensor([4,5,6])
c = tf.complex(r,i)
arr = await c.dataSync()
// convert to an array of object
t = arr.reduce((a, b, i) => i % 2 === 0 ?
[...a, [b]] :
[...a.slice(0, a.length - 1), a[a.length - 1].concat(b)], [])
.map(([a, b]) => ({ re: a, im: b }))
console.log(t)