如何从tensorflow einsum结果中获取numpy数组?

时间:2018-08-31 04:41:29

标签: python numpy tensorflow

y = tf.einsum('aij,jk->aik', x, W) + b

y.shape返回以下内容:

tf.Tensor 'text-representation/add:0' shape=(?, 80, 256) dtype=float32

如何将80x256数组放入numpy数组? 我是tensorflow和挣扎的新手。谢谢。

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决此问题:

1)。在会话中执行张量。

y = tf.einsum('aij,jk->aik', x, W) + b

sess = tf.Session()
print(sess.run(y))

# store the numpy array
my_arr = sess.run(y)
my_arr.shape

sess.close()  # close the session object

2)。使用急切执行立即执行。

# enable eager execution
tf.enable_eager_execution()

y = tf.einsum('aij,jk->aik', x, W) + b
print(y)

但是,请注意,要使用Eager Execution,必须在终端上执行任何其他操作之前将其启用。此外,启用“紧急执行”后,除非重新启动终端,否则无法将其禁用。