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 Словарь, содержащий информацию о суммарной ошибке. -

Пояснения

-