MulAddConst¶
Описание¶
Этот модуль применяет к тензору линейный оператор.
Инициализация¶
def __init__(self, a=1.0, b=0.0, inplace=False, name=None):
Параметры
Параметр | Возможные типы | Описание | По умолчанию |
---|---|---|---|
a | float | Коэффициент a линейного оператора ax+b | 1.0 |
b | float | Коэффициент b линейного оператора ax+b | 0.0 |
inplace | bool | Если True, то выходной тензор будет записан в памяти на место входного | False |
name | str | Имя слоя | None |
Пояснения
inplace
- флаг, показывающий, нужно ли выделять дополнительные ресурсы памяти для результата. Если True, то выходной тензор будет записан в памяти на место входного, что может негативно отразиться на работе сети, если входной тензор должен принимать участие в расчётах на других ветках графа.
Примеры¶
Необходимые импорты.
import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Modules import MulAddConst
Info
gpuarray
необходим для правильного размещения тензора на GPU
batchsize, maps, h, w = 1, 1, 3, 3
data = gpuarray.to_gpu(np.arange(batchsize * maps * h * w).reshape((batchsize, maps, h, w)).astype(np.float32))
print(data)
[[[[0. 1. 2.]
[3. 4. 5.]
[6. 7. 8.]]]]
mulAdd = MulAddConst(a=3.14, b=42.0)
print(mulAdd(data))
[[[[42. 45.14 48.28 ]
[51.420002 54.56 57.7 ]
[60.84 63.98 67.12 ]]]]