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