如何在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 中这样做:
a = tf.Variable([1,2,3,4]) a = a[0].assign(100) with tf.Session() as sess: sess.run(
假设你有这样的代码
import tensorflow as tf
...
f = h*y + z*t #Just some expression involving other tensors.
e = ... # some expression that does not involve f.
result = tf.select(b, e, f)
sess.run(result)
B是与e和f形状相同的布尔张量,如果b的所有元素都为真,则不需要f,结果就是(或等于)e。
问题是:当会话以结果运行,且e的元素都为true时,是否对f进行评估?
我正在尝试用Tensorflow重写下面的Python代码。但是,我在使用tf.map_fn迭代张量时遇到了问题。
这里depth是形状[batch_size,256,256]的张量,normal是形状[batch_size,256,256,3]的张量,scale是形状[batch_size,256,256]的张量。
for b in range(0,batch_size):
depth[b,:,:] = [scale[b,0,0] + (scale[b,0,1] - scale[b,0,0])* x for x in depth[b,:,:]]
normal[b,:,:,:]
我只想给张量赋值一次,并且在以后的所有执行中保持不变。换句话说,我想实现如下内容:
x = tf.cond(tf.equal(x_ready, 0), ComputeX(), tf.no_op)
这当然行不通,因为tf.no_op不返回张量。那么,有没有什么简单的方法可以在Tensorflow中实现与以下C++代码等效的代码?
x_ready = false;
if (!x_ready) {
x = ComputeX();
x_ready = true;
} // and there is no "else" branch
请注意,我不希望通过以下方式实现它:
x =
我正在和tensorflow一起研究一个算法。以下是想要的代码的NumPy版本: x = [1,2,3,4,5,6,7,8,9,10]
sets = {1,5,7}
y = [0,0,0,0,0,0,0,0,0,0]
for i in range(10):
if i in sets:
y[i] = x[i] 它会得到结果: y = [0,2,0,0,0,6,0,8,0,0] 如何在tensorflow中实现此功能?有没有办法使用相同的逻辑在tensorflow中实现这一点,而不是在计算后将NumPy数组转换为张量,而是使用张量执行所有操作(例如,使用张量来索引张量,
我是TensorFlow的新手。我不能理解如何在TensorFlow中创建一个动态的"pythonic“列表。基本上,我在一个张量对象(train_data[i])上执行一些计算,并将其附加到一个“列表”X,我希望它是一个具有形状(100,)的张量
我想做这样的事情:
X = []
for i in range(100):
q = tf.log(train_data[i])
print(q) #Tensor("Log:0", shape=(), dtype=float32)
X.append(q)
我希望X是一个形状为(100,)的张量