Tensorflow中的笛卡尔积
在Tensorflow中有什么简单的方法可以像itertools.product一样做笛卡尔积吗?我想获得两个张量(a
和b
)的元素组合,在Python中可以通过itertools作为list(product(a,
b))。我正在Tensorflow中寻找替代方案。
回答:
我将在此假定a
和b
均为一维张量。
为了得到两者的笛卡尔积,我会用的组合tf.expand_dims
和tf.tile
:
a = tf.constant([1,2,3]) b = tf.constant([4,5,6,7])
tile_a = tf.tile(tf.expand_dims(a, 1), [1, tf.shape(b)[0]])
tile_a = tf.expand_dims(tile_a, 2)
tile_b = tf.tile(tf.expand_dims(b, 0), [tf.shape(a)[0], 1])
tile_b = tf.expand_dims(tile_b, 2)
cartesian_product = tf.concat([tile_a, tile_b], axis=2)
cart = tf.Session().run(cartesian_product)
print(cart.shape)
print(cart)
您使用LEN(一) LEN(B) 2张量,其中的元件的每个组合结束a
并且b
在最后一维表示。
以上是 Tensorflow中的笛卡尔积 的全部内容, 来源链接: utcz.com/qa/407380.html