Могу ли я дублировать тензор параметров, значения которых одинаковы для дубликатов во время обучения? - PullRequest
0 голосов
/ 08 марта 2020

Итак, допустим, у меня есть входной вектор размером 100. В частности, входной вектор имеет размер [50 + 50]. Затем я хочу создать тензор параметра размера [50 x 2], который применяется к первым 50 входам и вторым 50 входам. такой, что мы получим вектор размером [2 + 2] позже. Я хочу, чтобы первые 50 входов и последние 50 входов входного вектора были умножены на один и тот же тензор параметра [50 x 2], и чтобы это сохранялось при обновлении параметров. Можете ли вы «продублировать» тензор параметров, например, или есть способ запрограммировать это? Я не уверен, что функция ".clone ()" делает то, что я хочу ..

Спасибо!

1 Ответ

0 голосов
/ 09 марта 2020

Вы можете определить операцию один раз, а затем применить ее несколько раз в форварде:

class MyModel(nn.Module):
def __init__(self):
    self.layer1 = ...
    self.layer2 = ...


def forward(self, input1, input2):
    o1 = self.layer1(input1)
    o2 = self.layer1(input2)
    return self.layer2(input1+input2)

А вот, например, параметры layer1 используются дважды, вам не нужно дублировать их, только называть их несколько раз после определения их

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...