poutyne

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:

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