Validator

Описание

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

Info

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

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

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

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

Параметры

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

Пояснения

-

Методы

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

validateFromHost

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

Функционал

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

Параметры

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

Пояснения

-

validate

def validate(self, data, target):

Функционал

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

Параметры

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

Пояснения

-

handleBatch

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

Корневой метод валидационного обработчика. Вычисляет величину ошибки на батче.

Параметры

Параметр Возможные типы Описание По умолчанию
batch list Лист из двух элементов: [data, target] -
idx int Порядковый номер блока данных -
state dict Словарь, содержащий информацию о суммарной ошибке -

Пояснения

-