Indexing 获取Tensorflow.js中张量中的项的值

Indexing 获取Tensorflow.js中张量中的项的值,indexing,tensor,tensorflow.js,Indexing,Tensor,Tensorflow.js,指定索引后,如何从Tensorflow.js中的张量中获取值 const newTensor = tf.tensor2d([[2,4], [5,6]]) newTensor.get([0]) ##returns 2 newTensor.get([3]) ##returns 6 谢天谢地,所有这些都返回一个数字,而不是张量。您可以使用datasync进行此操作 const newTensor = tf.tensor2d([[2,4],[5,6]]); const tensorData = new

指定索引后,如何从Tensorflow.js中的张量中获取值

const newTensor = tf.tensor2d([[2,4], [5,6]])
newTensor.get([0]) ##returns 2
newTensor.get([3]) ##returns 6

谢天谢地,所有这些都返回一个数字,而不是张量。

您可以使用datasync进行此操作

const newTensor = tf.tensor2d([[2,4],[5,6]]);
const tensorData = newTensor.dataSync();
console.log("data[0] is " + tensorData[0]);
console.log("data[3] is " + tensorData[3]);

您可以使用以下更强大的方法

tensor.buffer().get(0,0)


这将允许您索引到张量的逻辑坐标(二维坐标,而不是平坦的一维坐标)。请参见

tf.Tensor.dataSync()
不保留原始形状。如果要保留形状,可以使用
tf.Tensor.arraySync()

或者也可以使用slice获取值:

let value = tensor.slice([i,j], [1, 1]);


它不起作用:错误:get()中的坐标数必须与张量的秩相匹配。@JavaRunner您可以共享它不起作用的代码/张量吗?这个
get
函数在最新版本中不再存在。在python Tensorflow Keras中,您将如何做到这一点?
let value = tensor.slice([i,j], [1, 1]).arraySync()[0][0];