Skip to content

Instantly share code, notes, and snippets.

@michaelguia
Created October 19, 2017 21:25
Show Gist options
  • Save michaelguia/6a2892c47dacc625f190650d720f74b8 to your computer and use it in GitHub Desktop.
Save michaelguia/6a2892c47dacc625f190650d720f74b8 to your computer and use it in GitHub Desktop.
def to_categorical(y, num_classes=None):
"""Converts a class vector (integers) to binary class matrix.
E.g. for use with categorical_crossentropy.
# Arguments
y: class vector to be converted into a matrix
(integers from 0 to num_classes).
num_classes: total number of classes.
# Returns
A binary matrix representation of the input.
"""
y = np.array(y, dtype='int').ravel()
if not num_classes:
num_classes = np.max(y) + 1
n = y.shape[0]
categorical = np.zeros((n, num_classes))
categorical[np.arange(n), y] = 1
return categorical
def normalize(x, axis=-1, order=2):
"""Normalizes a Numpy array.
# Arguments
x: Numpy array to normalize.
axis: axis along which to normalize.
order: Normalization order (e.g. 2 for L2 norm).
# Returns
A normalized copy of the array.
"""
l2 = np.atleast_1d(np.linalg.norm(x, order, axis))
l2[l2 == 0] = 1
return x / np.expand_dims(l2, axis)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment