在 TensorFlow.js 中访问 tensor2d 的单个值
Access to single values of tensor2d in TensorFlow.js
我正在尝试使用 TensorFlow.js 包访问二维矩阵第二行的元素。在下面,我使用 [0]
和 [1]
访问矩阵第一行的第一个和第二个元素,但老实说,我希望访问这些元素,例如 [0][0]
以获得 1 和 [1][1]
得到 4。
const t1 = tf.tensor2d([
[1,2],
[3,4]
]);
const tensorData = t1.dataSync();
console.log("data[0] is " + tensorData[0]); // I get 1
console.log("data[1] is " + tensorData[1]); // I get 2
console.log("data[0][0] is " + tensorData[0][0]); // I get undefined, but I would expect to get 1
谁能解释一下为什么?我怎样才能访问矩阵第二行的单个元素?
Sintax tensorData[0][0] 是正确的,但看起来您的 tensorData var 等于 [1, 2, 3, 4],根本没有第二行。
访问前检查一下tensorData究竟包含什么。
如果想通过坐标获取张量值,有get
方法。这是一个例子
const a=tf.tensor([1, 2, 3, 4], [2, 2])
b=a.get(0,0)
console.log(b)
你也可以看看下面的
请不要使用Tensor.get
,这实际上会在我们进行主要版本更新时被弃用。
你应该使用:
const buffer = tensor.buffer();
const value = buffer.get(i, j, k);
如果要索引到多个值,请将 TensorBuffer
存储为一个对象。这将保留 CPU 上的所有值,并允许您快速索引它们。
我正在尝试使用 TensorFlow.js 包访问二维矩阵第二行的元素。在下面,我使用 [0]
和 [1]
访问矩阵第一行的第一个和第二个元素,但老实说,我希望访问这些元素,例如 [0][0]
以获得 1 和 [1][1]
得到 4。
const t1 = tf.tensor2d([
[1,2],
[3,4]
]);
const tensorData = t1.dataSync();
console.log("data[0] is " + tensorData[0]); // I get 1
console.log("data[1] is " + tensorData[1]); // I get 2
console.log("data[0][0] is " + tensorData[0][0]); // I get undefined, but I would expect to get 1
谁能解释一下为什么?我怎样才能访问矩阵第二行的单个元素?
Sintax tensorData[0][0] 是正确的,但看起来您的 tensorData var 等于 [1, 2, 3, 4],根本没有第二行。
访问前检查一下tensorData究竟包含什么。
如果想通过坐标获取张量值,有get
方法。这是一个例子
const a=tf.tensor([1, 2, 3, 4], [2, 2])
b=a.get(0,0)
console.log(b)
你也可以看看下面的
请不要使用Tensor.get
,这实际上会在我们进行主要版本更新时被弃用。
你应该使用:
const buffer = tensor.buffer();
const value = buffer.get(i, j, k);
如果要索引到多个值,请将 TensorBuffer
存储为一个对象。这将保留 CPU 上的所有值,并允许您快速索引它们。