# chainer.function_hooks.PrintHook¶

class chainer.function_hooks.PrintHook(sep=None, end='n', file=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>, flush=True)[source]

Function hook that prints debug information.

This function hook outputs the debug information of input arguments of forward and backward methods involved in the hooked functions at preprocessing time (that is, just before each method is called).

Unlike simple “debug print” technique, where users insert print functions at every function to be inspected, we can show the information of all functions involved with single with statement.

Further, this hook enables us to show the information of backward methods without inserting print functions into Chainer’s library code.

Parameters
• sep(deprecated since v4.0.0) Ignored.

• end – Character to be added at the end of print function.

• file – Output file_like object that that redirect to.

• flush – If True, this hook forcibly flushes the text stream at the end of preprocessing.

Example

The basic usage is to use it with with statement.

>>> from chainer import function_hooks
>>> l = L.Linear(10, 10)
>>> x = chainer.Variable(np.zeros((1, 10), np.float32))
>>> with chainer.function_hooks.PrintHook():
...     y = l(x)
...     z = F.sum(y)
...     z.backward()


In this example, PrintHook shows the debug information of forward propagation of LinearFunction (which is implicitly called by l) and Sum (called by F.sum) and backward propagation of z and y.

Methods

__enter__()[source]
__exit__(*_)[source]
added(function)[source]

Callback function invoked when the function hook is registered

Parameters

function (FunctionNode) – Function object to which the function hook is added. None if the function hook is registered globally.

backward_postprocess(function, in_data, out_grad)[source]

Callback function invoked after backward propagation.

Parameters
backward_preprocess(function, in_data, out_grad)[source]

Callback function invoked before backward propagation.

Parameters
deleted(function)[source]

Callback function invoked when the function hook is unregistered

Parameters

function (FunctionNode) – Function object from which the function hook is deleted. None if the function hook was registered globally.

forward_postprocess(function, in_data)[source]

Callback function invoked after forward propagation.

Parameters
• function (FunctionNode) – Function object to which the function hook is registered.

• in_data (tuple of N-dimensional array) – Input data of forward propagation.

forward_preprocess(function, in_data)[source]

Callback function invoked before forward propagation.

Parameters
• function (FunctionNode) – Function object to which the function hook is registered.

• in_data (tuple of N-dimensional array) – Input data of forward propagation.

__eq__()

Return self==value.

__ne__()

Return self!=value.

__lt__()

Return self<value.

__le__()

Return self<=value.

__gt__()

Return self>value.

__ge__()

Return self>=value.

Attributes

name = 'PrintHook'