在 Tensorflow 1.8.0 中,如何将两个占位符组合成 Tensorflow 中的元组

In Tensorflow 1.8.0, How to combine two placeholder into tuples in Tensorflow

我有两个占位符,其中都有 10 个值。现在我想把它转换成元组。

在python,我知道怎么做了,例如:

a = [1, 2, 3]
b = [4, 5, 6]

c = list(zip(a, b)

然后c=[(1, 4), (2, 5), (3, 6)]

所以,我在占位符中有 ab,我怎样才能得到 c?

不能同时使用即时执行和占位符。

不过对了,我的Tensorflow版本是1.8.0

尝试使用 tf.data.Data.from_tensor_slices:

import tensorflow as tf
import numpy as np
tf.compat.v1.enable_eager_execution()

a = [1, 2, 3]
b = [4, 5, 6]

c = np.asarray(list(tf.data.Dataset.from_tensor_slices((a, b)).map(lambda x, y: (x, y))), dtype="i,i")
print(c)
[(1, 4) (2, 5) (3, 6)]

如果您正在使用 placeholders,请尝试:

import tensorflow as tf
import numpy as np

a = tf.compat.v1.placeholder(tf.int32)
b = tf.compat.v1.placeholder(tf.int32)

def f(a, b):
  return np.stack([a, b], axis=1)

c = tf.py_func(f, [a, b], tf.int32)

with tf.compat.v1.Session() as sess:
 c = sess.run(c, feed_dict={a: [1, 2, 3], b: [4, 5, 6]})
 c = [tuple(i) for i in c]
 print(c)
[(1, 4) (2, 5) (3, 6)]