Utils

These utils functions only support the following basic Python types: tuple, list and dict.

poutyne.torch_to_numpy(obj, copy=False)[source]

Convert to Numpy arrays all tensors inside a Python object composed of the supported types.

Parameters
  • obj – The Python object to convert.

  • copy (bool) – Whether to copy the memory. By default, if a tensor is already on CPU, the Numpy array will be a view of the tensor.

Returns

A new Python object with the same structure as obj but where the tensors are now Numpy arrays. Not supported type are left as reference in the new object.

Example

>>> from poutyne import torch_to_numpy
>>> torch_to_numpy({
...     'first': torch.tensor([1, 2, 3]),
...     'second':[torch.tensor([4,5,6]), torch.tensor([7,8,9])],
...     'third': 34
... })
{
    'first': array([1, 2, 3]),
    'second': [array([4, 5, 6]), array([7, 8, 9])],
    'third': 34
}
See:

torch_apply() for supported types.

poutyne.numpy_to_torch(obj)[source]

Convert to tensors all Numpy arrays inside a Python object composed of the supported types.

Parameters

obj – The Python object to convert.

Returns

A new Python object with the same structure as obj but where the Numpy arrays are now tensors. Not supported type are left as reference in the new object.

Example

>>> from poutyne import numpy_to_torch
>>> numpy_to_torch({
...     'first': np.array([1, 2, 3]),
...     'second':[np.array([4,5,6]), np.array([7,8,9])],
...     'third': 34
... })
{
    'first': tensor([1, 2, 3]),
    'second': [tensor([4, 5, 6]), tensor([7, 8, 9])],
    'third': 34
}
poutyne.torch_apply(obj, func)[source]

Apply a function to all tensors inside a Python object composed of the supported types.

Supported types are: list, tuple and dict.

Parameters
  • obj – The Python object to convert.

  • func – The function to apply.

Returns

A new Python object with the same structure as obj but where the tensors have been applied the function func. Not supported type are left as reference in the new object.

poutyne.set_seeds(seed)[source]

Set Python, Numpy and Pytorch’s random seeds in order to make the random number generation procedure deterministic and reproducible.

Parameters

seed (int) – The random number generation seed to use.