MulAddConst

Описание

Info

Родительский класс: Module

Производные классы: -

Этот модуль применяет к тензору линейный оператор.

Инициализация

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    ]]]]