vak.predict.predict_.predict#

vak.predict.predict_.predict(model_name: str, model_config: dict, dataset_path: str | Path, checkpoint_path: str | Path, labelmap_path: str | Path, num_workers: int = 2, transform_params: dict | None = None, dataset_params: dict | None = None, timebins_key: str = 't', spect_scaler_path: str | Path | None = None, device: str | None = None, annot_csv_filename: str | None = None, output_dir: str | Path | None = None, min_segment_dur: float | None = None, majority_vote: bool = False, save_net_outputs: bool = False)[source]#

Make predictions on a dataset with a trained model.

Parameters:
  • model_name (str) ā€“ Model name, must be one of vak.models.registry.MODEL_NAMES.

  • model_config (dict) ā€“

    Model configuration in a dict,

    as loaded from a .toml file, and used by the model method from_config.

    dataset_pathstr

    Path to dataset, e.g., a csv file generated by running vak prep.

    checkpoint_pathstr

    path to directory with checkpoint files saved by Torch, to reload model

    labelmap_pathstr

    path to ā€˜labelmap.jsonā€™ file.

    window_sizeint

    size of windows taken from spectrograms, in number of time bins, shown to neural networks

    num_workersint

    Number of processes to use for parallel loading of data. Argument to torch.DataLoader. Default is 2.

  • transform_params (dict, optional) ā€“ Parameters for data transform. Passed as keyword arguments. Optional, default is None.

  • dataset_params (dict, optional) ā€“

    Parameters for dataset.

    Passed as keyword arguments. Optional, default is None.

    timebins_keystr

    key for accessing vector of time bins in files. Default is ā€˜tā€™.

    devicestr

    Device on which to work with model + data. Defaults to ā€˜cudaā€™ if torch.cuda.is_available is True.

    spect_scaler_pathstr

    path to a saved SpectScaler object used to normalize spectrograms. If spectrograms were normalized and this is not provided, will give incorrect results.

    annot_csv_filenamestr

    name of .csv file containing predicted annotations. Default is None, in which case the name of the dataset .csv is used, with ā€˜.annot.csvā€™ appended to it.

    output_dirstr, Path

    path to location where .csv containing predicted annotation should be saved. Defaults to current working directory.

    min_segment_durfloat

    minimum duration of segment, in seconds. If specified, then any segment with a duration less than min_segment_dur is removed from lbl_tb. Default is None, in which case no segments are removed.

    majority_votebool

    if True, transform segments containing multiple labels into segments with a single label by taking a ā€œmajority voteā€, i.e. assign all time bins in the segment the most frequently occurring label in the segment. This transform can only be applied if the labelmap contains an ā€˜unlabeledā€™ label, because unlabeled segments makes it possible to identify the labeled segments. Default is False.

  • save_net_outputs (bool) ā€“ if True, save ā€˜rawā€™ outputs of neural networks before they are converted to annotations. Default is False. Typically the output will be ā€œlogitsā€ to which a softmax transform might be applied. For each item in the datasetā€“each row in the dataset_path .csvā€“ the output will be saved in a separate file in output_dir, with the extension {MODEL_NAME}.output.npz. E.g., if the input is a spectrogram with spect_path filename gy6or6_032312_081416.npz, and the network is TweetyNet, then the net output file will be gy6or6_032312_081416.tweetynet.output.npz.