我的问题是关于Tensorflow中的张量运算。 比如说:
import tensorflow as tf
import numpy as np
a = tf.Variable(np.random.random([10, 3, 3]))
b = tf.Variable(np.random.random([10, 3, 3]))
def some_function(m,n):
# just as an example
return tf.add(m, n)
这在Tensorflow中有效,但它需要知道高级的维度。然而,张量的第一维很可能不是。
c = []
for i in range(10):
c.append(some_function(a[i], b[i]))
c = tf.stack(c)
所以我想知道Tensorflow中是否有类似zip的函数?然后我们可以:
# TypeError: zip argument #1 must support iteration
c = []
for i, j in zip(a,b):
c.append(some_function(i,j))
c = tf.stack(c)
也许我们可以使用tf.map_fn或tf.scan之类的函数?但我不确定。真的谢谢你们,伙计们。
Tensor对象是不可iterable的,这解释了第三个代码示例失败的原因。所以,为了回答您的问题,TensorFlow中没有类似zip的函数。
您确实可以使用^{} 将函数应用于一系列张量。您在示例代码中提出的问题可以通过以下方式解决:
产生一个张量
d
,其值为[20., 6., 6.]
。相关问题 更多 >
编程相关推荐