Как эффективно представить матричный продукт с повторяющимися элементамиPython

Программы на Python
Ответить
Anonymous
 Как эффективно представить матричный продукт с повторяющимися элементами

Сообщение Anonymous »

У меня есть тензор a формы (n/10, c, c), который я хочу умножить на другой тензор b формы (n, c, 1 ). Каждая строка a представляет 10 строк b, поэтому наивным способом реализации этого было бы просто повторять каждую строку a 10 раз перед выполнением умножения:

Код: Выделить всё

n = 100
c = 5

a = tf.constant(np.random.rand(n//10, c, c))
b = tf.constant(np.random.rand(n, c, c))
a_prime = tf.repeat(a, 10, 0)

result = a_prime @ b
Это работает, но для очень больших n Меня беспокоит расход памяти при таком подходе. Конечно, я мог бы просмотреть каждую строку и выполнить скалярное произведение вручную, но это повлияет на производительность. Есть ли лучший способ?

Подробнее здесь: https://stackoverflow.com/questions/792 ... d-elements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»