2015-10-16 7 views
0

По существу, как можно умножить маску CharTensor с помощью DoubleTensor? Я создаю модуль для факела, он должен быть похож на модуль ReLU. Поэтому self.mask должен быть маской из 0s и 1s, которую я хочу поразить с помощью DoubleTensor self.output с. В настоящее время self.mask является CharTensor, и я не могу умножить два, как видно в журнале. Кажется настолько тривиальным, но я смотрю онлайн навсегда, не в силах найти решение.Torch DoubleTensor CharTensor Несовместимость

Бесконечные спасибо,

-an озабоченный кодировщик

функция Requ: updateOutput (вход)

...

self.mask = torch.gt (вход, 0)

self.output: cmul (self.mask)

...

Вход: недопустимые аргументы: DoubleTensor ByteTensor ожидаемые аргументы: DoubleTensor [DoubleTensor] DoubleTensor стек отслеживающий: [C]: в функции '' cmul ./requ.lua:21: в функции «вперед '

ответ

2

Факел предоставляет методы для этого без необходимости умножать значения самостоятельно. Простейшим, вероятно, является инвертирование вашей маски и использование index [] operator:

self.mask = torch.le(input, 0) 
self.output[self.mask] = 0 
+0

Благодарим за податливый ответ! – user3768533

Смежные вопросы