import tensorflow as tf

    mean_z = tf.reduce_mean(labeled_poses[1][:, 2])
    samples_world = grid.generate(
        (mean_x - 0.5, 0.0, mean_z - 0.5), (mean_x + 0.5, 1.0, mean_z + 0.5),
        [self.resolution, self.resolution, self.resolution])
    samples_world = tf.reshape(samples_world, [-1, 3])

    status = False
    if status:
      _, axs = plt.subplots(3, 3)
      fig_obj_count = 0

    # Do the same for the ground truth and predictions
    num_collisions = 0
    prev_intersection = 0
    sdf_values = tf.zeros_like(samples_world)[:, 0:1]
    for classes, sdfs, poses in [(predicted_classes,
                                  predicted_sdfs,
                                  predicted_poses)]:
      for i in range(classes.shape[0]):
        sdf = tf.expand_dims(sdfs[i], -1)
        sdf = sdf * -1.0  # inside positive, outside zero
        samples_object = centernet_utils.transform_pointcloud(
            tf.reshape(samples_world, [1, 1, -1, 3]),
            tf.reshape(poses[2][i], [1, 1, 3]),
            tf.reshape(poses[0][i], [1, 1, 3, 3]),
            tf.reshape(poses[1][i], [1, 1, 3]), inverse=True) * 2.0
        samples_object = (samples_object * (29.0/32.0) / 2.0 + 0.5) * 32.0 - 0.5
        samples = tf.squeeze(samples_object)
