Model
Koogu supports a few ready-to-use architectures.
User-defined custom architectures can be created by implementing the abstract base class koogu.model.architectures.BaseArchitecture
.
- class koogu.model.TrainedModel(saved_model_dir)
An interface for using a trained model for making inferences.
- Parameters:
saved_model_dir – Path to the directory from which to load a trained model.
- infer(inputs)
Process data using the trained model.
- Parameters:
inputs – A 2D numpy array. The first dimension corresponds to the number of input waveform clips. The second dimension contains clips’ samples.
- Returns:
An NxM numpy array of scores corresponding to the N input clips and M classes.
- property audio_settings
Audio settings that were used for preparing model inputs.
- property class_names
List of class names corresponding to the scores output by the model for each input.
- property spec_settings
Spectrogram settings used for transforming waveforms into time-frequency representations. If no transformation was applied (during training), then this property will be None.
- class koogu.model.architectures.BaseArchitecture(is_2d=True, multilabel=True, dtype=None, name=None)
Base class for implementing custom user-defined architectures.
- Parameters:
is_2d – (bool; default:True) Set to True for spectrogram-like inputs, and to False for waveform-like (time-domain) inputs.
multilabel – (bool; default: True) Set appropriately so that the loss function and accuracy metrics can be chosen correctly. A multilabel model’s Logits (final) layer will have Sigmoid activation whereas a single-label model’s will have SoftMax activation.
dtype – Tensorflow data type of the model’s weights (default: tf.float32).
name – Name of the model.
- abstract build_network(input_tensor, is_training, data_format, **kwargs)
This method must be implemented in the derived class.
It should contain logic to construct the desired sequential or functional model network starting from the
input_tensor
.Note
Do not add the Logits layer in your implementation. It will be added by internal code.
- Parameters:
input_tensor – The Keras tensor to use as the input placeholder in model that will be built.
is_training – (boolean) Indicates if operating in training mode. Certain elements of the network (e.g., dropout layers) may be excluded when not in training mode.
data_format – One of ‘channels_last’ or ‘channels_first’.
- Returns:
Must return a Keras tensor corresponding to outputs of the architecture.