Cerebro’s ML Library

Matrix Operations

Currently, Cerebro supports a number of operations involving matrices.

matadd(A, B): Element-wise addition of two matrices A and B.

matsub(A, B): Element-wise subtraction of two matrices A and B.

matmul(A, B): Matrix multiplication of matrices A and B.

transpose(A): Transpose of matrix A.

matinv(A): Inverse of matrix A.

Other useful functions or classes used in ML

sigmoid(v): Performs the sigmoid function on value v.

mat_const_mul(c, A): Multiplies each entry in matrix A by a constant value c.

mat_assign(dest, src): Assigns dest matrix to src matrix.

get_identity_matrix(n): Returns an identity matrix of dimension n.

class Piecewise: Defines a piecewise function based on a sequence of boundaries.

  • add_boundary(self, lower, upper, a, b)
    • Adds a linear function y = ax + b within the boundary [lower, upper]

Example of a ReLU function:

# init a piecewise function with 2 boundaries (-infty, 0), (0, infty)
relu = Piecewise(2)
# Add a linear function for each boundary: y = ax + b
relu.add(-float("inf"), 0, 0, 0)
relu.add(0, float("inf"), 1, 0)