通过在TensorFlow中的循环中调用函数来创建张量

时间:2019-03-26 01:28:43

标签: tensorflow

我需要通过在循环中的其他两个张量和索引上调用某个函数fn来创建张量,如下所示:

tensor = [[fn(tensor1, tensor2, i, j) for i in range(3)] for j in range(4)]

不确定如何解决此问题。以某种方式使用tf.map_fn

1 个答案:

答案 0 :(得分:1)

因此,对于您的简单情况,您的代码将按原样执行。

import tensorflow as tf


sess = tf.Session()

a = tf.constant([1,2,3])
b = tf.constant([3,4,5,6])

def fn( tensor1, tensor2, i, j ):
   return tensor1[i] * tensor2[j]

tensor = [[fn(a, b, i, j) for i in range(3)] for j in range(4)]

init = tf.global_variables_initializer()
sess.run(init)
print (sess.run(tensor))
  

[[3,6,9],[4,8,12],[5,10,15],[6,12,18]]