pytorch_pfn_extras.utils.comparer.ModelComparer#

class pytorch_pfn_extras.utils.comparer.ModelComparer(engines, to_compare_keys=None, *, compare_fn=<function get_default_comparer.<locals>.compare_fn>, concurrency=None)#

Bases: _ComparerBase

A class for comparison of iteration model parameters.

This class is mainly used to compare results between different devices.

Parameters:
  • engines (dict of Engines) – Trainers or Evaluators to compare outputs.

  • to_compare_keys (tuple of str, optional) – A set of keys of model parameters to compare.

  • compare_fn (function) – Comparison function. Default is get_default_comparer().

  • concurrency (int, optional) – The upper bound limit on the number of workers that run concurrently. If None, inferred from the size of engines.

Examples

>>> trainer_cpu = ppe.engine.create_trainer(
        model, optimizer, 1, device='cpu')
>>> trainer_gpu = ppe.engine.create_trainer(
        model, optimizer, 1, device='cuda:0')
>>> comp = ppe.utils.comparer.ModelComparer(
        {"cpu": trainer_cpu, "gpu": trainer_gpu})
>>> comp.compare({"cpu": loader, "gpu": loader}])

Methods

__init__(engines[, to_compare_keys, ...])

A class for comparison of iteration model parameters.

compare(loaders[, n_iters])

Compares outputs.

compare_targets(name, engine, batch_idx, target)

run_engine(engine, loaders)

__init__(engines, to_compare_keys=None, *, compare_fn=<function get_default_comparer.<locals>.compare_fn>, concurrency=None)#

A class for comparison of iteration model parameters.

This class is mainly used to compare results between different devices.

Parameters:
  • engines (dict of Engines) – Trainers or Evaluators to compare outputs.

  • to_compare_keys (tuple of str, optional) – A set of keys of model parameters to compare.

  • compare_fn (function) – Comparison function. Default is get_default_comparer().

  • concurrency (int, optional) – The upper bound limit on the number of workers that run concurrently. If None, inferred from the size of engines.

Examples

>>> trainer_cpu = ppe.engine.create_trainer(
        model, optimizer, 1, device='cpu')
>>> trainer_gpu = ppe.engine.create_trainer(
        model, optimizer, 1, device='cuda:0')
>>> comp = ppe.utils.comparer.ModelComparer(
        {"cpu": trainer_cpu, "gpu": trainer_gpu})
>>> comp.compare({"cpu": loader, "gpu": loader}])