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 | Словарь, содержащий результаты предсказаний модели | - |
Пояснения
-