Module narya.utils.utils
Expand source code
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import torch
def isnan(x):
"""Check if x is a number or not.
Arguments:
x: an object
Returns:
a boolean, == True if x is nan
Raises:
"""
return x != x
def hasnan(x):
"""Check if a matrix contains nan
Arguments:
x: a np.array
Returns:
a boolean, == True if x has nan
Raises:
"""
return isnan(x).any()
def round_clip_0_1(x, **kwargs):
"""Clip value to [0,1] inside a np.array
Arguments:
x: np.array
Returns:
np.array with the same shape and clipped value
Raises:
"""
return x.round().clip(0, 1)
def to_numpy(var):
"""Parse a Torch variable to a numpy array
Arguments:
var: torch variable
Returns:
a np.array with the same value as var
Raises:
"""
try:
return var.numpy()
except:
return var.detach().numpy()
def to_torch(np_array):
"""Parse a numpy array to a torch variable
Arguments:
np_array: a np.array
Returns:
a torch Var with the same value as the np_array
Raises:
"""
tensor = torch.from_numpy(np_array).float()
return torch.autograd.Variable(tensor, requires_grad=False)
Functions
def hasnan(x)
-
Check if a matrix contains nan
Arguments
x: a np.array
Returns
a boolean, == True if x has nan Raises:
Expand source code
def hasnan(x): """Check if a matrix contains nan Arguments: x: a np.array Returns: a boolean, == True if x has nan Raises: """ return isnan(x).any()
def isnan(x)
-
Check if x is a number or not.
Arguments
x: an object
Returns
a boolean, == True if x is nan Raises:
Expand source code
def isnan(x): """Check if x is a number or not. Arguments: x: an object Returns: a boolean, == True if x is nan Raises: """ return x != x
def round_clip_0_1(x, **kwargs)
-
Clip value to [0,1] inside a np.array
Arguments
x: np.array
Returns
np.array with the same shape and clipped value Raises:
Expand source code
def round_clip_0_1(x, **kwargs): """Clip value to [0,1] inside a np.array Arguments: x: np.array Returns: np.array with the same shape and clipped value Raises: """ return x.round().clip(0, 1)
def to_numpy(var)
-
Parse a Torch variable to a numpy array
Arguments
var: torch variable
Returns
a np.array with the same value as var Raises:
Expand source code
def to_numpy(var): """Parse a Torch variable to a numpy array Arguments: var: torch variable Returns: a np.array with the same value as var Raises: """ try: return var.numpy() except: return var.detach().numpy()
def to_torch(np_array)
-
Parse a numpy array to a torch variable
Arguments
np_array: a np.array
Returns
a torch Var with the same value as the np_array Raises:
Expand source code
def to_torch(np_array): """Parse a numpy array to a torch variable Arguments: np_array: a np.array Returns: a torch Var with the same value as the np_array Raises: """ tensor = torch.from_numpy(np_array).float() return torch.autograd.Variable(tensor, requires_grad=False)