Calculator

Описание

Обработчик, предназначенный упростить пользователю процесс инференса модели путём устранения необходимости вручную прописывать последовательность действий. Является своего рода обёрткой вокруг операций над данными.

Info

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

  • данные размещены на диске - сначала производится разделение данных на макробатчи (macrobatch) - блоки, которые целиком размещаются на GPU, после чего идёт разбиение макробатча на более мелкие батчи (batch), которые уже подаются непосредственно на вход модели;
  • данные уже размещены на GPU - происходит только разбиение на батчи, подаваемые непосредственно на вход модели.

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

def __init__(self, mod, onBatchFinish=None, batchsize=128):

Параметры

Параметр Возможные типы Описание По умолчанию
mod Module Обучаемая нейросеть. -
onBatchFinish callable Функция, которая будет вызываться по окончании обработки блока (batch) данных. None
batchsize int Размер блока данных. 128

Пояснения

-

Методы

Со всеми основными методами обработчиков можно ознакомиться в документации к родительскому классу Handler.

calcFromHost

def calcFromHost(self, data, macroBatchSize=10000, onMacroBatchFinish=None):

Функционал

Обёртка вокруг метода handleFromHost() родительского класса Handler, осуществляющая прямой прогон данных через модель (инференс). Возвращает массив ответов сети.

Параметры

Параметр Возможные типы Описание По умолчанию
data tensor Тензор данных. -
macroBatchSize int Размер макробатча. Данные будут разбиты на макроблоки размера macroBatchSize. 10000
onMacroBatchFinish callable Функция, которая будет вызываться после обработки макробатча. None

Пояснения

-

calc

def calc(self, data, target):

Функционал

Обёртка вокруг метода handle() родительского класса Handler, осуществляющая прямой прогон данных через модель (инференс). Возвращает массив ответов сети.

Параметры

Параметр Возможные типы Описание По умолчанию
data GPUArray Тензор данных, размещённый на GPU. -

Пояснения

-

handleBatch

def handleBatch(self, batch, idx, resid, state):
Функционал

Корневой метод инференс-обработчика. Обрабатывает переданный батч моделью и записывает результаты в state.

Параметры

Параметр Возможные типы Описание По умолчанию
batch GPUArray Тензор данных, размещённый на GPU. -
idx int Порядковый номер блока данных. -
state dict Словарь, содержащий результаты предсказаний модели. -

Пояснения

-