def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) v = mb.leaky_relu(x=x_val, alpha=2.0) b = np.copy(x_val) b[b < 0] *= 2.0 assert is_close(b, v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) alpha = 1.0 beta = 2.0 v = mb.sigmoid_hard(x=x_val, alpha=alpha, beta=beta) assert is_close(np.minimum(np.maximum((alpha * x_val) + beta, 0), 1), v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) v = mb.clamped_relu(x=x_val, alpha=2.0, beta=1.0) x = np.minimum(np.maximum(x_val, 0), 1.0) y = np.minimum(np.minimum(x_val, 0) * 2.0, 1.0) assert is_close(x + y, v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) mode = "TANH_APPROXIMATION" v = mb.gelu(x=x_val, mode=mode) a = np.sqrt(2 / np.pi) * (x_val + 0.044715 * np.power(x_val, 3)) out = 0.5 * x_val * (1 + np.tanh(a)) assert is_close(out, v.val) mode = "SIGMOID_APPROXIMATION" v = mb.gelu(x=x_val, mode=mode) out = x_val * (1 / (1 + np.exp(-(1.702 * x_val)))) assert is_close(out, v.val) v = mb.gelu(x=x_val) out = 0.5 * x_val * (1 + scipy.special.erf(x_val / np.sqrt(2))) assert is_close(out, v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) v = mb.elu(x=x_val, alpha=2.0) b = np.copy(x_val) b[b < 0] = 2.0 * (np.exp(b[b < 0]) - 1) assert is_close(b, v.val)
def test_builder_eval(self): x_val = np.array([[[[-1, 3, 6]], [[-1, 2, -3]], [[4, -5, 6]]]], dtype=np.float32) alpha = np.array([1, 2, 3], dtype=np.float32) v = mb.prelu(x=x_val, alpha=alpha) alpha_br = alpha for i in range(1, len(x_val.shape)): alpha_br = np.expand_dims(alpha_br, i) x_pos = np.maximum(x_val, 0) b = np.minimum(x_val, 0) assert is_close(x_pos + b * alpha_br, v.val)
def test_builder_eval(self): x_val = np.array([[[[-1, 3, 6]], [[-1, 2, -3]], [[4, -5, 6]]]], dtype=np.float32) v = mb.softplus_parametric( x=x_val, alpha=np.array([1, 2, 3], dtype=np.float32), beta=np.array([4, 5, 6], dtype=np.float32), ) alpha_br = np.array([1, 2, 3], dtype=np.float32) beta_br = np.array([4, 5, 6], dtype=np.float32) for i in range(1, len(x_val.shape)): alpha_br = np.expand_dims(alpha_br, i) beta_br = np.expand_dims(beta_br, i) out = alpha_br * np.log(np.exp(x_val * beta_br) + 1) assert is_close(out, v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) v = mb.softsign(x=x_val) assert is_close(x_val / (1 + np.abs(x_val)), v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) v = mb.softmax(x=x_val, axis=0) assert is_close(scipy.special.softmax(x_val, axis=0), v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) v = mb.softplus(x=x_val) assert is_close( np.log(1 + np.exp(-np.abs(x_val))) + np.maximum(x_val, 0), v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) v = mb.sigmoid(x=x_val) assert is_close(1 / (1 + np.exp(-x_val)), v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) v = mb.scaled_tanh(x=x_val, alpha=2.0, beta=1.0) assert is_close(2.0 * np.tanh(x_val * 1.0), v.val)
def test_builder_eval(self): x_val = np.array([[-1, 7, -3], [4, -5, 8]], dtype=np.float32) v = mb.relu6(x=x_val) assert is_close(np.minimum(np.maximum(x_val, 0), 6), v.val)
def test_builder_eval(self): x_val = np.array([[-1, 2, -3], [4, -5, 6]], dtype=np.float32) v = mb.linear_activation(x=x_val, alpha=2.0, beta=3.0) assert is_close(x_val * 2.0 + 3.0, v.val)
def test_builder_eval(self): x_val = np.array([[0, 2, 0], [4, 0, 6]], dtype=np.float32) v = mb.thresholded_relu(x=x_val, alpha=2.0) y = x_val y[y < 2.0] = 0 assert is_close(y, v.val)