如何在Tensorflow.js中改变张量的值?例如,如果我有一个像这样创建的张量:
const a = tf.tensor1d([1,2,3,4])
如何更改张量的第三个元素的值?我知道张量是不可变的,变量是可变的。
执行此操作:const a = tf.variable(tf.tensor1d([1,2,3,4]))
似乎无法解决问题。我不能这样做:
const a = a[0].assign(5)
我可以在 python tensorflow 中执行此操作:
a = tf.Variable([1,2,3,4])
a = a[0].assign(100)
with tf.Session() as sess:
sess.run(tf.global_variables_iniliazer())
print sess.run(a)
这会输出[100, 2,3,4]
答案 0 :(得分:1)
tf.buffer
是否适合您?
// Create a buffer and set values at particular indices.
const a = tf.tensor1d([1, 2, 3, 4]);
const buffer = tf.buffer(a.shape, a.dtype, a.dataSync());
buffer.set(5, 0);
const b = buffer.toTensor();
// Convert the buffer back to a tensor.
b.print();
Tensor
[5, 2, 3, 4]
答案 1 :(得分:0)
我必须使用mulStrict
和addStrict
执行此操作,这会进行元素乘法和加法。
const a = tf.tensor1d([1,2,3,4]);
tf.mulStrict(a, tf.tensor1d([0,1,1,1]))
.addStrict(tf.tensor1d([100, 0, 0, 0]);
这是基于asnwer here