【发布时间】:2017-11-20 07:23:32
【问题描述】:
我的问题是关于 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 中有效,但需要提前了解维度。但是,Tensor 的第一个维度很可能是 None。
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 之类的函数?但我不确定。真的谢谢你们。
【问题讨论】:
-
For 循环在 TensorFlow 中很少使用,尤其是在处理张量计算时,因为循环是在 python 中并且与内部 c++ 相比会很慢,TensorFlow 中很可能存在可以为您提供的函数或操作任务更数学上没有循环。
标签: python tensorflow deep-learning