pytorch_pfn_extras.utils.comparer.Comparer#

class pytorch_pfn_extras.utils.comparer.Comparer(*, trigger=None, compare_fn=<function get_default_comparer.<locals>.compare_fn>, concurrency=None, outputs=True, params=False, baseline=None)#

Bases: object

A class for comparison of iteration outputs and model parameters.

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

Parameters:
  • trigger (Trigger) – Trigger object that determines when to compare values.

  • 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.

  • outputs (tuple of str or bool) – A set of keys of output dict to compare.

  • params (tuple of str or bool) – A set of keys of model parameters to compare.

  • baseline (str, optional) – The baseline engine that is assumed to be correct.

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.Comparer()
>>> comp.add_engine("cpu", engine_cpu, train_1, eval_1)
>>> comp.add_engine("gpu", engine_gpu, train_2, eval_2)
>>> comp.compare()

Methods

__init__(*[, trigger, compare_fn, ...])

A class for comparison of iteration outputs and model parameters.

add_dump(name, dir)

Add an engine to compare variables.

add_engine(name, engine, *args, **kwargs)

Add an engine to compare variables.

compare()

Compares outputs.

dump(engine, dir, *args, **kwargs)

Add an engine to compare variables.

__init__(*, trigger=None, compare_fn=<function get_default_comparer.<locals>.compare_fn>, concurrency=None, outputs=True, params=False, baseline=None)#

A class for comparison of iteration outputs and model parameters.

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

Parameters:
  • trigger (Trigger) – Trigger object that determines when to compare values.

  • 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.

  • outputs (tuple of str or bool) – A set of keys of output dict to compare.

  • params (tuple of str or bool) – A set of keys of model parameters to compare.

  • baseline (str, optional) – The baseline engine that is assumed to be correct.

Return type:

None

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.Comparer()
>>> comp.add_engine("cpu", engine_cpu, train_1, eval_1)
>>> comp.add_engine("gpu", engine_gpu, train_2, eval_2)
>>> comp.compare()
add_dump(name, dir)#

Add an engine to compare variables.

Parameters:
  • name (str) – The name of dump.

  • dir (str) – The directory that the results are saved to.

Return type:

None

add_engine(name, engine, *args, **kwargs)#

Add an engine to compare variables.

Parameters:
  • name (str) – Engine name.

  • engine (Trainer or Evaluator) – An engine to compare variables.

  • **kwargs (*args and) –

    Arguments passed to engine.run.

  • args (Any) –

  • kwargs (Any) –

Return type:

None

compare()#

Compares outputs.

Return type:

None

dump(engine, dir, *args, **kwargs)#

Add an engine to compare variables.

Parameters:
  • engine (Trainer or Evaluator) – An engine to compare variables.

  • dir (str) – Name of the directory that the results are saved to.

  • **kwargs (*args and) –

    Arguments passed to engine.run.

  • args (Any) –

  • kwargs (Any) –

Return type:

None