我正在训练一个使用回归预测位置和方向的模型。我想使用模型输出的最后 3 个值来实现自定义度量,以计算和最小化由函数定义的角度误差,如下所示:
def angular_error(data_true, data_pred):
# Axes orientation in radians (X,Y,Z)
axes_orientation_gt = np.transpose(data_true[2:5])
axes_orientation_pred = np.transpose(data_pred[2:5])
axes_size = 0.1 # Axes_size in meters
# Convert euler angles to rotation matrix (XYZ)
_, Rx_gt, Ry_gt, Rz_gt = eul2rotmat(axes_orientation_gt)
# Rotation matrix XYZ
R_gt = Rz_gt * Ry_gt * Rx_gt
# Y-axis end
y_a_gt = R_gt * np.transpose(np.matrix([0, 1, 0])) * axes_size
# Predictions
# Convert euler angles to rotation matrix (XYZ)
_, Rx_dnn, Ry_dnn, Rz_dnn = eul2rotmat(axes_orientation_pred)
# Rotation matrix XYZ
R_dnn = Rz_dnn * Ry_dnn * Rx_dnn
....
return gaze_ang_err
有没有办法避免使用 Keras/TF 函数而不是每个 numpy 函数的外观/用法?这个函数还调用了另外两个带有 numpy 和数学运算的函数,所以看起来有点过头了。任何输入表示赞赏...