|
|
|
@ -88,12 +88,6 @@ class Parser: |
|
|
|
|
self.parse_mdn('pose', outs, in_N=0, out_N=0, out_shape=(ModelConstants.POSE_WIDTH,)) |
|
|
|
|
self.parse_mdn('wide_from_device_euler', outs, in_N=0, out_N=0, out_shape=(ModelConstants.WIDE_FROM_DEVICE_WIDTH,)) |
|
|
|
|
self.parse_mdn('road_transform', outs, in_N=0, out_N=0, out_shape=(ModelConstants.POSE_WIDTH,)) |
|
|
|
|
self.parse_mdn('lane_lines', outs, in_N=0, out_N=0, out_shape=(ModelConstants.NUM_LANE_LINES,ModelConstants.IDX_N,ModelConstants.LANE_LINES_WIDTH)) |
|
|
|
|
self.parse_mdn('road_edges', outs, in_N=0, out_N=0, out_shape=(ModelConstants.NUM_ROAD_EDGES,ModelConstants.IDX_N,ModelConstants.LANE_LINES_WIDTH)) |
|
|
|
|
self.parse_mdn('lead', outs, in_N=ModelConstants.LEAD_MHP_N, out_N=ModelConstants.LEAD_MHP_SELECTION, |
|
|
|
|
out_shape=(ModelConstants.LEAD_TRAJ_LEN,ModelConstants.LEAD_WIDTH)) |
|
|
|
|
for k in ['lead_prob', 'lane_lines_prob']: |
|
|
|
|
self.parse_binary_crossentropy(k, outs) |
|
|
|
|
self.parse_categorical_crossentropy('desire_pred', outs, out_shape=(ModelConstants.DESIRE_PRED_LEN,ModelConstants.DESIRE_PRED_WIDTH)) |
|
|
|
|
self.parse_binary_crossentropy('meta', outs) |
|
|
|
|
return outs |
|
|
|
@ -108,6 +102,15 @@ class Parser: |
|
|
|
|
self.parse_categorical_crossentropy('desire_state', outs, out_shape=(ModelConstants.DESIRE_PRED_WIDTH,)) |
|
|
|
|
return outs |
|
|
|
|
|
|
|
|
|
def parse_misc_outputs(self, outs: dict[str, np.ndarray]) -> dict[str, np.ndarray]: |
|
|
|
|
self.parse_mdn('lane_lines', outs, in_N=0, out_N=0, out_shape=(ModelConstants.NUM_LANE_LINES,ModelConstants.IDX_N,ModelConstants.LANE_LINES_WIDTH)) |
|
|
|
|
self.parse_mdn('road_edges', outs, in_N=0, out_N=0, out_shape=(ModelConstants.NUM_ROAD_EDGES,ModelConstants.IDX_N,ModelConstants.LANE_LINES_WIDTH)) |
|
|
|
|
self.parse_mdn('lead', outs, in_N=ModelConstants.LEAD_MHP_N, out_N=ModelConstants.LEAD_MHP_SELECTION, |
|
|
|
|
out_shape=(ModelConstants.LEAD_TRAJ_LEN,ModelConstants.LEAD_WIDTH)) |
|
|
|
|
for k in ['lead_prob', 'lane_lines_prob']: |
|
|
|
|
self.parse_binary_crossentropy(k, outs) |
|
|
|
|
return outs |
|
|
|
|
|
|
|
|
|
def parse_outputs(self, outs: dict[str, np.ndarray]) -> dict[str, np.ndarray]: |
|
|
|
|
outs = self.parse_vision_outputs(outs) |
|
|
|
|
outs = self.parse_policy_outputs(outs) |
|
|
|
|