Тензорный поток - декартово произведение двух двумерных тензоров - PullRequest
0 голосов
/ 12 июня 2018

У меня есть два двумерных тензора, и я хочу получить их декартово произведение.Под Декартом я подразумеваю конкатат каждой строки первого тензора с каждой строкой второго тензора.Например:

Ввод:

[[1,2,3], [4,5,6]]

и

[[7, 8], [9,10]]

Выход:

[[1,2,3,7,8],

[1,2,3,9,10],

[4,5,6,7,8],

[4,5,6,9,10]]

Имеювидел этот пост , но он не работает для этого случая.Что лучше для этого?

Спасибо

1 Ответ

0 голосов
/ 12 июня 2018

Вот один из способов.Повторите элементы a и b по второму и первому измерениям соответственно, далее измените форму, повторяя a, а затем объедините два повторных тензора.

a_ = tf.reshape(tf.tile(a, [1, b.shape[0]]), (a.shape[0] * b.shape[0], a.shape[1]))
b_ = tf.tile(b, [a.shape[0], 1])

tf.concat([a_, b_], 1).eval()
#array([[ 1,  2,  3,  7,  8],
#       [ 1,  2,  3,  9, 10],
#       [ 4,  5,  6,  7,  8],
#       [ 4,  5,  6,  9, 10]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...