Hi,
The number of ground truths per each class seem to be done in a degenerate way in the following line in case of zero tp_ratios leading to nan values of num_gt
num_gts = per_class_tp / tp_ratios
https://github.com/DCASE-REPO/psds_eval/blob/41cb9639633271fd676a6a7f26dbff36fbc0c9ba/src/psds_eval/psds.py#L755C41-L755C41
Since there is already a relevant method implemented to obtain gts in the class, the above line seems unnecessary and can be replaced by :
num_gts = self._get_dataset_counts().values[:-1].astype(float)
the [:-1] slicing is to remove the dummy class injected at the end of the counts tensor, confusion matrix, etc. by the original developers referred to as "injected_psds_world_label". similar slicing for example is perfomed in the line above of the above mentioned line to obtain the tp counts:
per_class_tp = np.diag(counts)[:-1]