Вызов нескольких функций на нескольких рядах тензораPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Вызов нескольких функций на нескольких рядах тензора

Сообщение Anonymous »

import torch

x = torch.ones(3, 3)

factors = [lambda x: 2*x, lambda x: 3*x, lambda x: 4*x]
indices = torch.tensor([0, 1, 2])

def multiply_row_by_factor(row, idx):
return factors[idx](row)

result = torch.vmap(multiply_row_by_factor, in_dims=(0, 0))(x, indices)

# Original Tensor
# tensor([[1., 1., 1.],
# [1., 1., 1.],
# [1., 1., 1.]])

# Desired Result
# tensor([[2., 2., 2.],
# [3., 3., 3.],
# [4., 4., 4.]])
< /code>
Как говорится в заголовке, я ищу способ вызвать несколько функций на нескольких строках тензора. Я показываю минимально воспроизводимый пример для простоты. Я знаю, что VMAP предназначен только для одной функции. Я просто использую его здесь в качестве примера, чтобы сообщить, что я пытаюсь сделать. Этот конкретный подход не работает из -за того, что IDX является патентором. Функции здесь - лямбдас, но на самом деле мои функции состоят из сложных преобразований, которые я бы предпочел не разложить, чтобы заставить это работать. ? Что -то более чистое, чем потоки pytorch?

Подробнее здесь: https://stackoverflow.com/questions/794 ... f-a-tensor
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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