def constraint_occl(gradients, start_point, rect_shape):
    new_grads = np.zeros_like(gradients)
    new_grads[:, start_point[0]:(start_point[0] + rect_shape[0]), start_point[1]:(start_point[1] + rect_shape[1])] = gradients[:, start_point[0]:(start_point[0] + rect_shape[0]), start_point[1]:(start_point[1] + rect_shape[1])]
    return new_grads
def constraint_occl(gradients, start_point, rect_shape):
    new_grads = np.zeros_like(gradients)
    new_grads[:, start_point[0]:(start_point[0] + rect_shape[0]), start_point[1]:(start_point[1] + rect_shape[1])] = gradients[:, start_point[0]:(start_point[0] + rect_shape[0]), start_point[1]:(start_point[1] + rect_shape[1])]
    return new_grads