Python tensorflow.acos() Examples
The following are 30
code examples of tensorflow.acos().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
tensorflow
, or try the search function
.
Example #1
Source File: metrics.py From keras-arcface with MIT License | 6 votes |
def call(self, inputs): x, y = inputs c = K.shape(x)[-1] # normalize feature x = tf.nn.l2_normalize(x, axis=1) # normalize weights W = tf.nn.l2_normalize(self.W, axis=0) # dot product logits = x @ W # add margin # clip logits to prevent zero division when backward theta = tf.acos(K.clip(logits, -1.0 + K.epsilon(), 1.0 - K.epsilon())) target_logits = tf.cos(theta + self.m) # sin = tf.sqrt(1 - logits**2) # cos_m = tf.cos(logits) # sin_m = tf.sin(logits) # target_logits = logits * cos_m - sin * sin_m # logits = logits * (1 - y) + target_logits * y # feature re-scale logits *= self.s out = tf.nn.softmax(logits) return out
Example #2
Source File: test_forward.py From incubator-tvm with Apache License 2.0 | 6 votes |
def test_forward_unary(): def _test_forward_unary(op, a_min=1, a_max=5, dtype=np.float32): """test unary operators""" np_data = np.random.uniform(a_min, a_max, size=(2, 3, 5)).astype(dtype) tf.reset_default_graph() with tf.Graph().as_default(): in_data = tf.placeholder(dtype, (2, 3, 5), name="in_data") out = op(in_data) compare_tf_with_tvm([np_data], ['in_data:0'], out.name) _test_forward_unary(tf.acos, -1, 1) _test_forward_unary(tf.asin, -1, 1) _test_forward_unary(tf.atanh, -1, 1) _test_forward_unary(tf.sinh) _test_forward_unary(tf.cosh) _test_forward_unary(tf.acosh) _test_forward_unary(tf.asinh) _test_forward_unary(tf.atan) _test_forward_unary(tf.sin) _test_forward_unary(tf.cos) _test_forward_unary(tf.tan) _test_forward_unary(tf.tanh) _test_forward_unary(tf.erf) _test_forward_unary(tf.log) _test_forward_unary(tf.log1p)
Example #3
Source File: loss.py From insightface with MIT License | 6 votes |
def arcface_loss(x, normx_cos, labels, m1, m2, m3, s): norm_x = tf.norm(x, axis=1, keepdims=True) cos_theta = normx_cos / norm_x theta = tf.acos(cos_theta) mask = tf.one_hot(labels, depth=normx_cos.shape[-1]) zeros = tf.zeros_like(mask) cond = tf.where(tf.greater(theta * m1 + m3, math.pi), zeros, mask) cond = tf.cast(cond, dtype=tf.bool) m1_theta_plus_m3 = tf.where(cond, theta * m1 + m3, theta) cos_m1_theta_plus_m3 = tf.cos(m1_theta_plus_m3) prelogits = tf.where(cond, cos_m1_theta_plus_m3 - m2, cos_m1_theta_plus_m3) * s cce = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) # do softmax loss = cce(labels, prelogits) return loss
Example #4
Source File: euler.py From differentiable-point-clouds with MIT License | 6 votes |
def ypr_from_campos(cx, cy, cz): camDist = math.sqrt(cx * cx + cy * cy + cz * cz) cx = cx / camDist cy = cy / camDist cz = cz / camDist t = math.sqrt(cx * cx + cy * cy) tx = cx / t ty = cy / t yaw = math.acos(tx) if ty > 0: yaw = 2 * math.pi - yaw roll = 0 pitch = math.asin(cz) return yaw, pitch, roll
Example #5
Source File: metrics.py From keras-arcface with MIT License | 6 votes |
def call(self, inputs): x, y = inputs c = K.shape(x)[-1] # normalize feature x = tf.nn.l2_normalize(x, axis=1) # normalize weights W = tf.nn.l2_normalize(self.W, axis=0) # dot product logits = x @ W # add margin # clip logits to prevent zero division when backward theta = tf.acos(K.clip(logits, -1.0 + K.epsilon(), 1.0 - K.epsilon())) target_logits = tf.cos(self.m * theta) # logits = logits * (1 - y) + target_logits * y # feature re-scale logits *= self.s out = tf.nn.softmax(logits) return out
Example #6
Source File: data_utils.py From RecurrentGaze with MIT License | 6 votes |
def angle_error(gt, pred): """ Average angular error computed by cosine difference :param gt: list of ground truth label :param pred: list of predicted label :return: Average angular error """ vec_gt = angles2vector(gt) vec_pred = angles2vector(pred) x = K.np.multiply(vec_gt[:, 0], vec_pred[:, 0]) y = K.np.multiply(vec_gt[:, 1], vec_pred[:, 1]) z = K.np.multiply(vec_gt[:, 2], vec_pred[:, 2]) dif = K.np.sum([x, y, z], axis=0) / (tf.norm(vec_gt, axis=1) * tf.norm(vec_pred, axis=1)) clipped_dif = K.clip(dif, np.float(-1.0), np.float(1.0)) loss = (tf.acos(clipped_dif) * 180) / np.pi return K.mean(loss, axis=-1)
Example #7
Source File: tf_pid_network.py From crossgap_il_rl with GNU General Public License v2.0 | 6 votes |
def compare_euler_angle_error(self, net_roll,net_pitch, tar_roll, tar_pitch): cx1 = tf.cos(net_roll) sx1 = tf.sin(net_roll) cy1 = tf.cos(net_pitch) sy1 = tf.sin(net_pitch) cx2 = tf.cos(tar_roll) sx2 = tf.sin(tar_roll) cy2 = tf.cos(tar_pitch) sy2 = tf.sin(tar_pitch) m00 = cy1*cy2 + sy1*sy2 m11 = cx1*cx2 + cy1*cy2*sx1*sx2 + sx1*sx2*sy1*sy2 m22 = sx1*sx2 + cx1*cx2*sy1*sy2 + cx1*cx2*cy1*cy2 self.acos = ( m00 + m11 + m22 - 1)/2.0 * 0.99999 return tf.acos(self.acos)
Example #8
Source File: nngp_test.py From nngp with Apache License 2.0 | 6 votes |
def ExactQabArcCos(self, var_aa, corr_ab): """Exact integration result from Cho & Saul (2009). Specifically: qaa = 0.5*qaa qab = (qaa/2*pi)*(sin angle + (pi-angle)*cos angle), where cos angle = corr_ab. Args: var_aa: 1d tensor of variance grid points. corr_ab: 1d tensor of correlation grid points. Returns: qab_exact: tensor, exact covariance matrix. """ angle = tf.acos(corr_ab) jtheta = tf.sin(angle) + (np.pi - angle) * tf.cos(angle) term1 = tf.tile(tf.expand_dims(var_aa, 1), [1, corr_ab.shape[0]]) term2 = tf.tile(tf.expand_dims(jtheta, 0), [var_aa.shape[0], 1]) qab_exact = (1 / (2 * np.pi)) * term1 * term2 return qab_exact
Example #9
Source File: layer.py From 3DGCN with MIT License | 5 votes |
def call(self, inputs, mask=None): # Import graph tensors # scalar_features = (samples, max_atoms, atom_feat) # vector_features = (samples, max_atoms, coor_dims, atom_feat) scalar_features, vector_features = inputs # Get parameters coor_dims = int(vector_features.shape[2]) atom_feat = int(vector_features.shape[-1]) # Integrate over atom axis if self.pooling == "sum": scalar_features = tf.reduce_sum(scalar_features, axis=1) vector_features = tf.reduce_sum(vector_features, axis=1) elif self.pooling == "max": scalar_features = tf.reduce_max(scalar_features, axis=1) vector_features = tf.transpose(vector_features, perm=[0, 2, 3, 1]) size = tf.sqrt(tf.reduce_sum(tf.square(vector_features), axis=1)) idx = tf.reshape(tf.argmax(size, axis=-1, output_type=tf.int32), [-1, 1, atom_feat, 1]) idx = tf.tile(idx, [1, coor_dims, 1, 1]) vector_features = tf.reshape(tf.batch_gather(vector_features, idx), [-1, coor_dims, atom_feat]) # Activation scalar_features = self.activation(scalar_features) vector_features = self.activation(vector_features) if self.system == "spherical": x, y, z = tf.unstack(vector_features, axis=1) r = tf.sqrt(tf.square(x) + tf.square(y) + tf.square(z)) t = tf.acos(tf.divide(z, r + tf.cast(tf.equal(r, 0), dtype=float))) p = tf.atan(tf.divide(y, x + tf.cast(tf.equal(x, 0), dtype=float))) vector_features = tf.stack([r, t, p], axis=1) return [scalar_features, vector_features]
Example #10
Source File: tp8.py From AlignNet-3D with BSD 3-Clause "New" or "Revised" License | 5 votes |
def tf_quaternion_to_angle(q): return tf.acos(q[3]) * 2.0 # From frustum pointnets
Example #11
Source File: pixelda_eval.py From Gun-Detector with Apache License 2.0 | 5 votes |
def to_degrees(log_quaternion_loss): """Converts a log quaternion distance to an angle. Args: log_quaternion_loss: The log quaternion distance between two unit quaternions (or a batch of pairs of quaternions). Returns: The angle in degrees of the implied angle-axis representation. """ return tf.acos(-(tf.exp(log_quaternion_loss) - 1)) * 2 * 180 / math.pi
Example #12
Source File: pixelda_eval.py From object_detection_kitti with Apache License 2.0 | 5 votes |
def to_degrees(log_quaternion_loss): """Converts a log quaternion distance to an angle. Args: log_quaternion_loss: The log quaternion distance between two unit quaternions (or a batch of pairs of quaternions). Returns: The angle in degrees of the implied angle-axis representation. """ return tf.acos(-(tf.exp(log_quaternion_loss) - 1)) * 2 * 180 / math.pi
Example #13
Source File: cwise_ops_test.py From deep_image_model with Apache License 2.0 | 5 votes |
def testFloatBasic(self): x = np.arange(-3, 3).reshape(1, 3, 2).astype(np.float32) y = (x + .5).astype(np.float32) # no zero z = (x + 15.5).astype(np.float32) # all positive k = np.arange(-0.90, 0.90, 0.25).astype(np.float32) # between -1 and 1 self._compareBoth(x, np.abs, tf.abs) self._compareBoth(x, np.abs, _ABS) self._compareBoth(x, np.negative, tf.neg) self._compareBoth(x, np.negative, _NEG) self._compareBoth(y, self._inv, tf.inv) self._compareBoth(x, np.square, tf.square) self._compareBoth(z, np.sqrt, tf.sqrt) self._compareBoth(z, self._rsqrt, tf.rsqrt) self._compareBoth(x, np.exp, tf.exp) self._compareBoth(z, np.log, tf.log) self._compareBoth(z, np.log1p, tf.log1p) self._compareBoth(x, np.tanh, tf.tanh) self._compareBoth(x, self._sigmoid, tf.sigmoid) self._compareBoth(y, np.sign, tf.sign) self._compareBoth(x, np.sin, tf.sin) self._compareBoth(x, np.cos, tf.cos) self._compareBoth(k, np.arcsin, tf.asin) self._compareBoth(k, np.arccos, tf.acos) self._compareBoth(x, np.arctan, tf.atan) self._compareBoth(x, np.tan, tf.tan) self._compareBoth( y, np.vectorize(self._replace_domain_error_with_inf(math.lgamma)), tf.lgamma) self._compareBoth(x, np.vectorize(math.erf), tf.erf) self._compareBoth(x, np.vectorize(math.erfc), tf.erfc) self._compareBothSparse(x, np.abs, tf.abs) self._compareBothSparse(x, np.negative, tf.neg) self._compareBothSparse(x, np.square, tf.square) self._compareBothSparse(z, np.sqrt, tf.sqrt, tol=1e-3) self._compareBothSparse(x, np.tanh, tf.tanh) self._compareBothSparse(y, np.sign, tf.sign) self._compareBothSparse(x, np.vectorize(math.erf), tf.erf)
Example #14
Source File: cwise_ops_test.py From deep_image_model with Apache License 2.0 | 5 votes |
def testFloatEmpty(self): x = np.empty((2, 0, 5), dtype=np.float32) self._compareBoth(x, np.abs, tf.abs) self._compareBoth(x, np.abs, _ABS) self._compareBoth(x, np.negative, tf.neg) self._compareBoth(x, np.negative, _NEG) self._compareBoth(x, self._inv, tf.inv) self._compareBoth(x, np.square, tf.square) self._compareBoth(x, np.sqrt, tf.sqrt) self._compareBoth(x, self._rsqrt, tf.rsqrt) self._compareBoth(x, np.exp, tf.exp) self._compareBoth(x, np.log, tf.log) self._compareBoth(x, np.log1p, tf.log1p) self._compareBoth(x, np.tanh, tf.tanh) self._compareBoth(x, self._sigmoid, tf.sigmoid) self._compareBoth(x, np.sign, tf.sign) self._compareBoth(x, np.sin, tf.sin) self._compareBoth(x, np.cos, tf.cos) # Can't use vectorize below, so just use some arbitrary function self._compareBoth(x, np.sign, tf.lgamma) self._compareBoth(x, np.sign, tf.erf) self._compareBoth(x, np.sign, tf.erfc) self._compareBoth(x, np.tan, tf.tan) self._compareBoth(x, np.arcsin, tf.asin) self._compareBoth(x, np.arccos, tf.acos) self._compareBoth(x, np.arctan, tf.atan) self._compareBothSparse(x, np.abs, tf.abs) self._compareBothSparse(x, np.negative, tf.neg) self._compareBothSparse(x, np.square, tf.square) self._compareBothSparse(x, np.sqrt, tf.sqrt, tol=1e-3) self._compareBothSparse(x, np.tanh, tf.tanh) self._compareBothSparse(x, np.sign, tf.sign) self._compareBothSparse(x, np.sign, tf.erf)
Example #15
Source File: cwise_ops_test.py From deep_image_model with Apache License 2.0 | 5 votes |
def testDoubleBasic(self): x = np.arange(-3, 3).reshape(1, 3, 2).astype(np.float64) y = (x + .5).astype(np.float64) # no zero z = (x + 15.5).astype(np.float64) # all positive k = np.arange(-0.90, 0.90, 0.35).reshape(1, 3, 2).astype(np.float64) # between -1 and 1 self._compareBoth(x, np.abs, tf.abs) self._compareBoth(x, np.abs, _ABS) self._compareBoth(x, np.negative, tf.neg) self._compareBoth(x, np.negative, _NEG) self._compareBoth(y, self._inv, tf.inv) self._compareBoth(x, np.square, tf.square) self._compareBoth(z, np.sqrt, tf.sqrt) self._compareBoth(z, self._rsqrt, tf.rsqrt) self._compareBoth(x, np.exp, tf.exp) self._compareBoth(z, np.log, tf.log) self._compareBoth(z, np.log1p, tf.log1p) self._compareBoth(x, np.tanh, tf.tanh) self._compareBoth(x, self._sigmoid, tf.sigmoid) self._compareBoth(y, np.sign, tf.sign) self._compareBoth(x, np.sin, tf.sin) self._compareBoth(x, np.cos, tf.cos) self._compareBoth( y, np.vectorize(self._replace_domain_error_with_inf(math.lgamma)), tf.lgamma) self._compareBoth(x, np.vectorize(math.erf), tf.erf) self._compareBoth(x, np.vectorize(math.erfc), tf.erfc) self._compareBoth(x, np.arctan, tf.atan) self._compareBoth(k, np.arcsin, tf.asin) self._compareBoth(k, np.arccos, tf.acos) self._compareBoth(k, np.tan, tf.tan) self._compareBothSparse(x, np.abs, tf.abs) self._compareBothSparse(x, np.negative, tf.neg) self._compareBothSparse(x, np.square, tf.square) self._compareBothSparse(z, np.sqrt, tf.sqrt, tol=1e-3) self._compareBothSparse(x, np.tanh, tf.tanh) self._compareBothSparse(y, np.sign, tf.sign) self._compareBothSparse(x, np.vectorize(math.erf), tf.erf)
Example #16
Source File: losses.py From prosit with Apache License 2.0 | 5 votes |
def masked_spectral_distance(true, pred): # Note, fragment ions that cannot exists (i.e. y20 for a 7mer) must have the value -1. import tensorflow import keras.backend as k epsilon = k.epsilon() pred_masked = ((true + 1) * pred) / (true + 1 + epsilon) true_masked = ((true + 1) * true) / (true + 1 + epsilon) pred_norm = k.l2_normalize(true_masked, axis=-1) true_norm = k.l2_normalize(pred_masked, axis=-1) product = k.sum(pred_norm * true_norm, axis=1) arccos = tensorflow.acos(product) return 2 * arccos / numpy.pi
Example #17
Source File: RecursiveKernel.py From widedeepnetworks with Apache License 2.0 | 5 votes |
def recurseK(self, K, kxdiag, kx2diag): norms = tf.sqrt(kxdiag) norms_rec = tf.rsqrt(kxdiag) norms2 = tf.sqrt(kx2diag) norms2_rec = tf.rsqrt(kx2diag) jitter = 1e-7 scaled_numerator = K * (1.-jitter) cos_theta = scaled_numerator * norms_rec[:,None] * norms2_rec[None,:] theta = tf.acos(cos_theta) return self.variance / np.pi * ( tf.sqrt(kxdiag[:,None] * kx2diag[None,:] - tf.square(scaled_numerator) ) + (np.pi - theta) * scaled_numerator ) + self.bias_variance*tf.ones_like(K)
Example #18
Source File: tf_pid_network.py From crossgap_il_rl with GNU General Public License v2.0 | 5 votes |
def get_axis_angle(self, rot_matrix): # From http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/ m_00 = tf.slice(rot_matrix, [0, 0, 0], [-1, 1, 1]) m_11 = tf.slice(rot_matrix, [0, 1, 1], [-1, 1, 1]) m_22 = tf.slice(rot_matrix, [0, 2, 2], [-1, 1, 1]) angle = tf.reshape( tf.acos((m_00 + m_11 + m_22 - 1.0)/2.0), shape=[-1,1]) self.m_00 = m_00 self.m_11 = m_11 self.m_22 = m_22 return angle
Example #19
Source File: tensorflow2bk.py From quantumflow with Apache License 2.0 | 5 votes |
def arccos(theta: float) -> BKTensor: """Backend arccos""" return tf.acos(theta)
Example #20
Source File: tensorflowbk.py From quantumflow with Apache License 2.0 | 5 votes |
def arccos(theta: float) -> BKTensor: """Backend arccos""" return tf.acos(theta)
Example #21
Source File: pixelda_eval.py From hands-detection with MIT License | 5 votes |
def to_degrees(log_quaternion_loss): """Converts a log quaternion distance to an angle. Args: log_quaternion_loss: The log quaternion distance between two unit quaternions (or a batch of pairs of quaternions). Returns: The angle in degrees of the implied angle-axis representation. """ return tf.acos(-(tf.exp(log_quaternion_loss) - 1)) * 2 * 180 / math.pi
Example #22
Source File: fcn.py From fc4 with MIT License | 5 votes |
def get_angular_loss(self, vec1, vec2, length_regularization=0.0): with tf.name_scope('angular_error'): safe_v = 0.999999 if len(vec1.get_shape()) == 2: illum_normalized = tf.nn.l2_normalize(vec1, 1) _illum_normalized = tf.nn.l2_normalize(vec2, 1) dot = tf.reduce_sum(illum_normalized * _illum_normalized, 1) dot = tf.clip_by_value(dot, -safe_v, safe_v) length_loss = tf.reduce_mean( tf.maximum(tf.log(tf.reduce_sum(vec1**2, axis=1) + 1e-7), 0)) else: assert len(vec1.get_shape()) == 4 illum_normalized = tf.nn.l2_normalize(vec1, 3) _illum_normalized = tf.nn.l2_normalize(vec2, 3) dot = tf.reduce_sum(illum_normalized * _illum_normalized, 3) dot = tf.clip_by_value(dot, -safe_v, safe_v) length_loss = tf.reduce_mean( tf.maximum(tf.log(tf.reduce_sum(vec1**2, axis=3) + 1e-7), 0)) angle = tf.acos(dot) * (180 / math.pi) if SMOOTH_L1: angle = smooth_l1(angle) if ANGULAR_LOSS: return tf.reduce_mean(angle) + length_loss * length_regularization else: dot = tf.reduce_sum( (illum_normalized - _illum_normalized)**2, axis=len(illum_normalized.get_shape()) - 1) return tf.reduce_mean(dot) * 1000 + length_loss * length_regularization
Example #23
Source File: pointfly.py From scanobjectnn with MIT License | 5 votes |
def compute_eigenvals(A): A_11 = A[:, :, 0, 0] # (N, P) A_12 = A[:, :, 0, 1] A_13 = A[:, :, 0, 2] A_22 = A[:, :, 1, 1] A_23 = A[:, :, 1, 2] A_33 = A[:, :, 2, 2] I = tf.eye(3) p1 = tf.square(A_12) + tf.square(A_13) + tf.square(A_23) # (N, P) q = tf.trace(A) / 3 # (N, P) p2 = tf.square(A_11 - q) + tf.square(A_22 - q) + tf.square(A_33 - q) + 2 * p1 # (N, P) p = tf.sqrt(p2 / 6) + 1e-8 # (N, P) N = tf.shape(A)[0] q_4d = tf.reshape(q, (N, -1, 1, 1)) # (N, P, 1, 1) p_4d = tf.reshape(p, (N, -1, 1, 1)) B = (1 / p_4d) * (A - q_4d * I) # (N, P, 3, 3) r = tf.clip_by_value(compute_determinant(B) / 2, -1, 1) # (N, P) phi = tf.acos(r) / 3 # (N, P) eig1 = q + 2 * p * tf.cos(phi) # (N, P) eig3 = q + 2 * p * tf.cos(phi + (2 * math.pi / 3)) eig2 = 3 * q - eig1 - eig3 return tf.abs(tf.stack([eig1, eig2, eig3], axis=2)) # (N, P, 3) # P shape is (N, P, 3), N shape is (N, P, K, 3) # return shape is (N, P)
Example #24
Source File: pixelda_eval.py From yolo_v2 with Apache License 2.0 | 5 votes |
def to_degrees(log_quaternion_loss): """Converts a log quaternion distance to an angle. Args: log_quaternion_loss: The log quaternion distance between two unit quaternions (or a batch of pairs of quaternions). Returns: The angle in degrees of the implied angle-axis representation. """ return tf.acos(-(tf.exp(log_quaternion_loss) - 1)) * 2 * 180 / math.pi
Example #25
Source File: pixelda_eval.py From multilabel-image-classification-tensorflow with MIT License | 5 votes |
def to_degrees(log_quaternion_loss): """Converts a log quaternion distance to an angle. Args: log_quaternion_loss: The log quaternion distance between two unit quaternions (or a batch of pairs of quaternions). Returns: The angle in degrees of the implied angle-axis representation. """ return tf.acos(-(tf.exp(log_quaternion_loss) - 1)) * 2 * 180 / math.pi
Example #26
Source File: gaze.py From GazeML with MIT License | 5 votes |
def tensorflow_angular_error_from_vector(v_true, v_pred): """Tensorflow method to calculate angular loss from 3D vector.""" with tf.name_scope('mean_angular_error'): v_true_norm = tf.sqrt(tf.reduce_sum(tf.square(v_true), axis=1)) v_pred_norm = tf.sqrt(tf.reduce_sum(tf.square(v_pred), axis=1)) sim = tf.div(tf.reduce_sum(tf.multiply(v_true, v_pred), axis=1), tf.multiply(v_true_norm, v_pred_norm)) # Floating point precision can cause sim values to be slightly outside of # [-1, 1] so we clip values sim = tf.clip_by_value(sim, -1.0 + 1e-6, 1.0 - 1e-6) ang = tf.scalar_mul(radians_to_degrees, tf.acos(sim)) return tf.reduce_mean(ang)
Example #27
Source File: pixelda_eval.py From models with Apache License 2.0 | 5 votes |
def to_degrees(log_quaternion_loss): """Converts a log quaternion distance to an angle. Args: log_quaternion_loss: The log quaternion distance between two unit quaternions (or a batch of pairs of quaternions). Returns: The angle in degrees of the implied angle-axis representation. """ return tf.acos(-(tf.exp(log_quaternion_loss) - 1)) * 2 * 180 / math.pi
Example #28
Source File: pixelda_eval.py From g-tensorflow-models with Apache License 2.0 | 5 votes |
def to_degrees(log_quaternion_loss): """Converts a log quaternion distance to an angle. Args: log_quaternion_loss: The log quaternion distance between two unit quaternions (or a batch of pairs of quaternions). Returns: The angle in degrees of the implied angle-axis representation. """ return tf.acos(-(tf.exp(log_quaternion_loss) - 1)) * 2 * 180 / math.pi
Example #29
Source File: pixelda_eval.py From object_detection_with_tensorflow with MIT License | 5 votes |
def to_degrees(log_quaternion_loss): """Converts a log quaternion distance to an angle. Args: log_quaternion_loss: The log quaternion distance between two unit quaternions (or a batch of pairs of quaternions). Returns: The angle in degrees of the implied angle-axis representation. """ return tf.acos(-(tf.exp(log_quaternion_loss) - 1)) * 2 * 180 / math.pi
Example #30
Source File: main_model_engine.py From TripletLossFace with MIT License | 5 votes |
def arcface_loss(self, labels, x, normx_cos, m1=1.0, m2=0.2, m3=0.3, s=64.0): norm_x = tf.norm(x, axis=1, keepdims=True) cos_theta = normx_cos / norm_x theta = tf.acos(cos_theta) mask = tf.one_hot(labels, depth=normx_cos.shape[-1]) zeros = tf.zeros_like(mask) cond = tf.where(tf.greater(theta * m1 + m3, math.pi), zeros, mask) cond = tf.cast(cond, dtype=tf.bool) m1_theta_plus_m3 = tf.where(cond, theta * m1 + m3, theta) cos_m1_theta_plus_m3 = tf.cos(m1_theta_plus_m3) prelogits = tf.where(cond, cos_m1_theta_plus_m3 - m2, cos_m1_theta_plus_m3) * s loss = self.sparse(mask, prelogits) return loss, prelogits