chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
"""
|
||||
Helper functions used internally for segmentation tasks.
|
||||
"""
|
||||
|
||||
from typing import Optional, List
|
||||
|
||||
import numpy as np
|
||||
|
||||
|
||||
def _get_valid_optional_params(
|
||||
batch_size: Optional[int] = None,
|
||||
n_jobs: Optional[int] = None,
|
||||
):
|
||||
"""Takes in optional args and returns good values for them if they are None."""
|
||||
if batch_size is None:
|
||||
batch_size = 10000
|
||||
|
||||
if batch_size <= 0:
|
||||
raise ValueError(f"Batch size must be greater than 0, got {batch_size}")
|
||||
return batch_size, n_jobs
|
||||
|
||||
|
||||
def _get_summary_optional_params(
|
||||
class_names: Optional[List[str]] = None,
|
||||
exclude: Optional[List[int]] = None,
|
||||
top: Optional[int] = None,
|
||||
):
|
||||
"""Takes in optional args and returns good values for them if they are None for summary functions."""
|
||||
if exclude is None:
|
||||
exclude = []
|
||||
if top is None:
|
||||
top = 20
|
||||
return class_names, exclude, top
|
||||
|
||||
|
||||
def _check_input(labels: np.ndarray, pred_probs: np.ndarray) -> None:
|
||||
"""
|
||||
Checks that the input labels and predicted probabilities are valid.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
labels:
|
||||
Array of shape ``(N, H, W)`` of integer labels, where `N` is the number of images in the dataset and `H` and `W` are the height and width of the images.
|
||||
|
||||
pred_probs:
|
||||
Array of shape ``(N, K, H, W)`` of predicted probabilities, where `N` is the number of images in the dataset, `K` is the number of classes, and `H` and `W` are the height and width of the images.
|
||||
"""
|
||||
if len(labels.shape) != 3:
|
||||
raise ValueError("labels must have a shape of (N, H, W)")
|
||||
|
||||
if len(pred_probs.shape) != 4:
|
||||
raise ValueError("pred_probs must have a shape of (N, K, H, W)")
|
||||
|
||||
num_images, height, width = labels.shape
|
||||
num_images_pred, num_classes, height_pred, width_pred = pred_probs.shape
|
||||
|
||||
if num_images != num_images_pred or height != height_pred or width != width_pred:
|
||||
raise ValueError("labels and pred_probs must have matching dimensions for N, H, and W")
|
||||
Reference in New Issue
Block a user