SYMBOL INDEX (321 symbols across 38 files) FILE: docs/conf.py function run_apidoc (line 71) | def run_apidoc(_: Any) -> None: function setup (line 87) | def setup(app: Sphinx) -> None: FILE: src/so_vits_svc_fork/__main__.py class RichHelpFormatter (line 22) | class RichHelpFormatter(click.HelpFormatter): method __init__ (line 23) | def __init__( function patch_wrap_text (line 34) | def patch_wrap_text(): function cli (line 62) | def cli(): function train (line 105) | def train( function gui (line 135) | def gui(): function infer (line 227) | def infer( function vc (line 380) | def vc( function pre_resample (line 480) | def pre_resample( function pre_config (line 537) | def pre_config( function pre_hubert (line 594) | def pre_hubert( function pre_sd (line 644) | def pre_sd( function pre_split (line 715) | def pre_split( function pre_classify (line 762) | def pre_classify( function clean (line 780) | def clean(): function onnx (line 824) | def onnx(input_path: Path, output_path: Path, config_path: Path, device:... function train_cluster (line 866) | def train_cluster( FILE: src/so_vits_svc_fork/cluster/__init__.py function get_cluster_model (line 10) | def get_cluster_model(ckpt_path: Path | str): function check_speaker (line 23) | def check_speaker(model: Any, speaker: Any): function get_cluster_result (line 28) | def get_cluster_result(model: Any, x: Any, speaker: Any): function get_cluster_center_result (line 37) | def get_cluster_center_result(model: Any, x: Any, speaker: Any): function get_center (line 44) | def get_center(model: Any, x: Any, speaker: Any): FILE: src/so_vits_svc_fork/cluster/train_cluster.py function train_cluster (line 18) | def train_cluster( function main (line 92) | def main( FILE: src/so_vits_svc_fork/dataset.py class TextAudioDataset (line 15) | class TextAudioDataset(Dataset): method __init__ (line 16) | def __init__(self, hps: HParams, is_validation: bool = False): method __getitem__ (line 26) | def __getitem__(self, index: int) -> dict[str, torch.Tensor]: method __len__ (line 46) | def __len__(self) -> int: function _pad_stack (line 50) | def _pad_stack(array: Sequence[torch.Tensor]) -> torch.Tensor: class TextAudioCollate (line 57) | class TextAudioCollate(nn.Module): method forward (line 58) | def forward(self, batch: Sequence[dict[str, torch.Tensor]]) -> tuple[t... FILE: src/so_vits_svc_fork/f0.py function normalize_f0 (line 18) | def normalize_f0(f0: FloatTensor, x_mask: FloatTensor, uv: FloatTensor, ... function interpolate_f0 (line 35) | def interpolate_f0( function compute_f0_parselmouth (line 72) | def compute_f0_parselmouth( function _resize_f0 (line 105) | def _resize_f0(x: ndarray[Any, dtype[float32]], target_len: int) -> ndar... function compute_f0_pyworld (line 117) | def compute_f0_pyworld( function compute_f0_crepe (line 150) | def compute_f0_crepe( function compute_f0 (line 184) | def compute_f0( function f0_to_coarse (line 210) | def f0_to_coarse(f0: torch.Tensor | float): FILE: src/so_vits_svc_fork/gui.py function play_audio (line 25) | def play_audio(path: Path | str): function load_presets (line 32) | def load_presets() -> dict: function add_preset (line 40) | def add_preset(name: str, preset: dict) -> dict: function delete_preset (line 48) | def delete_preset(name: str) -> dict: function get_output_path (line 59) | def get_output_path(input_path: Path) -> Path: function get_supported_file_types (line 71) | def get_supported_file_types() -> tuple[tuple[str, str], ...]: function get_supported_file_types_concat (line 83) | def get_supported_file_types_concat() -> tuple[tuple[str, str], ...]: function validate_output_file_type (line 87) | def validate_output_file_type(output_path: Path) -> bool: function get_devices (line 100) | def get_devices( function after_inference (line 118) | def after_inference(window: sg.Window, path: Path, auto_play: bool, outp... function main (line 129) | def main(): FILE: src/so_vits_svc_fork/hparams.py class HParams (line 6) | class HParams: method __init__ (line 7) | def __init__(self, **kwargs: Any) -> None: method keys (line 13) | def keys(self): method items (line 16) | def items(self): method values (line 19) | def values(self): method get (line 22) | def get(self, key: str, default: Any = None): method __len__ (line 25) | def __len__(self): method __getitem__ (line 28) | def __getitem__(self, key): method __setitem__ (line 31) | def __setitem__(self, key, value): method __contains__ (line 34) | def __contains__(self, key): method __repr__ (line 37) | def __repr__(self): FILE: src/so_vits_svc_fork/inference/core.py function pad_array (line 25) | def pad_array(array_, target_length: int): class Chunk (line 41) | class Chunk: method duration (line 48) | def duration(self) -> float32: method __repr__ (line 52) | def __repr__(self) -> str: function split_silence (line 56) | def split_silence( class Svc (line 92) | class Svc: method __init__ (line 93) | def __init__( method load_model (line 118) | def load_model(self): method get_unit_f0 (line 131) | def get_unit_f0( method infer (line 169) | def infer( method infer_silence (line 219) | def infer_silence( function sola_crossfade (line 296) | def sola_crossfade( class Crossfader (line 327) | class Crossfader: method __init__ (line 328) | def __init__( method process (line 354) | def process(self, input_audio: ndarray[Any, dtype[float32]], *args, **... method infer (line 418) | def infer(self, input_audio: ndarray[Any, dtype[float32]]) -> ndarray[... class RealtimeVC (line 422) | class RealtimeVC(Crossfader): method __init__ (line 423) | def __init__( method process (line 440) | def process( method infer (line 448) | def infer( class RealtimeVC2 (line 498) | class RealtimeVC2: method __init__ (line 501) | def __init__(self, svc_model: Svc) -> None: method process (line 506) | def process( FILE: src/so_vits_svc_fork/inference/main.py function infer (line 21) | def infer( function realtime (line 108) | def realtime( FILE: src/so_vits_svc_fork/logger.py function init_logger (line 11) | def init_logger() -> None: function is_notebook (line 33) | def is_notebook(): FILE: src/so_vits_svc_fork/modules/attentions.py class FFT (line 11) | class FFT(nn.Module): method __init__ (line 12) | def __init__( method forward (line 63) | def forward(self, x, x_mask): class Encoder (line 82) | class Encoder(nn.Module): method __init__ (line 83) | def __init__( method forward (line 130) | def forward(self, x, x_mask): class Decoder (line 145) | class Decoder(nn.Module): method __init__ (line 146) | def __init__( method forward (line 201) | def forward(self, x, x_mask, h, h_mask): class MultiHeadAttention (line 225) | class MultiHeadAttention(nn.Module): method __init__ (line 226) | def __init__( method forward (line 273) | def forward(self, x, c, attn_mask=None): method attention (line 283) | def attention(self, query, key, value, mask=None): method _matmul_with_relative_values (line 316) | def _matmul_with_relative_values(self, x, y): method _matmul_with_relative_keys (line 325) | def _matmul_with_relative_keys(self, x, y): method _get_relative_embeddings (line 334) | def _get_relative_embeddings(self, relative_embeddings, length): method _relative_position_to_absolute_position (line 350) | def _relative_position_to_absolute_position(self, x): method _absolute_position_to_relative_position (line 367) | def _absolute_position_to_relative_position(self, x): method _attention_bias_proximal (line 381) | def _attention_bias_proximal(self, length): class FFN (line 397) | class FFN(nn.Module): method __init__ (line 398) | def __init__( method forward (line 426) | def forward(self, x, x_mask): method _causal_padding (line 436) | def _causal_padding(self, x): method _same_padding (line 445) | def _same_padding(self, x): FILE: src/so_vits_svc_fork/modules/commons.py function slice_segments (line 8) | def slice_segments(x: Tensor, starts: Tensor, length: int) -> Tensor: function rand_slice_segments_with_pitch (line 22) | def rand_slice_segments_with_pitch(x: Tensor, f0: Tensor, x_lengths: Ten... function slice_2d_segments (line 34) | def slice_2d_segments(x: Tensor, starts: Tensor, length: int) -> Tensor: function slice_1d_segments (line 42) | def slice_1d_segments(x: Tensor, starts: Tensor, length: int) -> Tensor: function _slice_segments_v3 (line 50) | def _slice_segments_v3(x: Tensor, starts: Tensor, length: int) -> Tensor: function init_weights (line 61) | def init_weights(m, mean=0.0, std=0.01): function get_padding (line 67) | def get_padding(kernel_size, dilation=1): function convert_pad_shape (line 71) | def convert_pad_shape(pad_shape): function subsequent_mask (line 77) | def subsequent_mask(length): function fused_add_tanh_sigmoid_multiply (line 83) | def fused_add_tanh_sigmoid_multiply(input_a, input_b, n_channels): function sequence_mask (line 92) | def sequence_mask(length, max_length=None): function clip_grad_value_ (line 99) | def clip_grad_value_(parameters, clip_value, norm_type=2): FILE: src/so_vits_svc_fork/modules/decoders/f0.py class F0Decoder (line 7) | class F0Decoder(nn.Module): method __init__ (line 8) | def __init__( method forward (line 35) | def forward(self, x, norm_f0, x_mask, spk_emb=None): FILE: src/so_vits_svc_fork/modules/decoders/hifigan/_models.py function padDiff (line 18) | def padDiff(x): class SineGen (line 22) | class SineGen(torch.nn.Module): method __init__ (line 39) | def __init__( method _f02uv (line 57) | def _f02uv(self, f0): method _f02sine (line 62) | def _f02sine(self, f0_values): method forward (line 120) | def forward(self, f0): class SourceModuleHnNSF (line 156) | class SourceModuleHnNSF(torch.nn.Module): method __init__ (line 175) | def __init__( method forward (line 195) | def forward(self, x): class NSFHifiGANGenerator (line 211) | class NSFHifiGANGenerator(torch.nn.Module): method __init__ (line 212) | def __init__(self, h): method forward (line 261) | def forward(self, x, f0, g=None): method remove_weight_norm (line 290) | def remove_weight_norm(self): FILE: src/so_vits_svc_fork/modules/decoders/hifigan/_utils.py function init_weights (line 8) | def init_weights(m, mean=0.0, std=0.01): function get_padding (line 14) | def get_padding(kernel_size, dilation=1): FILE: src/so_vits_svc_fork/modules/decoders/mb_istft/_generators.py class iSTFT_Generator (line 15) | class iSTFT_Generator(torch.nn.Module): method __init__ (line 16) | def __init__( method forward (line 70) | def forward(self, x, g=None): method remove_weight_norm (line 90) | def remove_weight_norm(self): class Multiband_iSTFT_Generator (line 100) | class Multiband_iSTFT_Generator(torch.nn.Module): method __init__ (line 101) | def __init__( method forward (line 155) | def forward(self, x, g=None): method remove_weight_norm (line 210) | def remove_weight_norm(self): class Multistream_iSTFT_Generator (line 218) | class Multistream_iSTFT_Generator(torch.nn.Module): method __init__ (line 219) | def __init__( method forward (line 280) | def forward(self, x, g=None): method remove_weight_norm (line 341) | def remove_weight_norm(self): FILE: src/so_vits_svc_fork/modules/decoders/mb_istft/_loss.py function subband_stft_loss (line 4) | def subband_stft_loss(h, y_mb, y_hat_mb): FILE: src/so_vits_svc_fork/modules/decoders/mb_istft/_pqmf.py function design_prototype_filter (line 12) | def design_prototype_filter(taps=62, cutoff_ratio=0.15, beta=9.0): class PQMF (line 46) | class PQMF(torch.nn.Module): method __init__ (line 54) | def __init__(self, device, subbands=8, taps=62, cutoff_ratio=0.15, bet... method analysis (line 97) | def analysis(self, x): method synthesis (line 111) | def synthesis(self, x): FILE: src/so_vits_svc_fork/modules/decoders/mb_istft/_stft.py function window_sumsquare (line 36) | def window_sumsquare( class STFT (line 90) | class STFT(torch.nn.Module): method __init__ (line 93) | def __init__(self, filter_length=800, hop_length=200, win_length=800, ... method transform (line 123) | def transform(self, input_data): method inverse (line 154) | def inverse(self, magnitude, phase): method forward (line 187) | def forward(self, input_data): class TorchSTFT (line 193) | class TorchSTFT(torch.nn.Module): method __init__ (line 194) | def __init__(self, filter_length=800, hop_length=200, win_length=800, ... method transform (line 201) | def transform(self, input_data): method inverse (line 213) | def inverse(self, magnitude, phase): method forward (line 224) | def forward(self, input_data): FILE: src/so_vits_svc_fork/modules/decoders/mb_istft/_stft_loss.py function stft (line 10) | def stft(x, fft_size, hop_size, win_length, window): class SpectralConvergengeLoss (line 33) | class SpectralConvergengeLoss(torch.nn.Module): method __init__ (line 36) | def __init__(self): method forward (line 40) | def forward(self, x_mag, y_mag): class LogSTFTMagnitudeLoss (line 55) | class LogSTFTMagnitudeLoss(torch.nn.Module): method __init__ (line 58) | def __init__(self): method forward (line 62) | def forward(self, x_mag, y_mag): class STFTLoss (line 77) | class STFTLoss(torch.nn.Module): method __init__ (line 80) | def __init__(self, fft_size=1024, shift_size=120, win_length=600, wind... method forward (line 90) | def forward(self, x, y): class MultiResolutionSTFTLoss (line 111) | class MultiResolutionSTFTLoss(torch.nn.Module): method __init__ (line 114) | def __init__( method forward (line 137) | def forward(self, x, y): FILE: src/so_vits_svc_fork/modules/descriminators.py class DiscriminatorP (line 11) | class DiscriminatorP(torch.nn.Module): method __init__ (line 12) | def __init__(self, period, kernel_size=5, stride=3, use_spectral_norm=... method forward (line 68) | def forward(self, x): class DiscriminatorS (line 90) | class DiscriminatorS(torch.nn.Module): method __init__ (line 91) | def __init__(self, use_spectral_norm=False): method forward (line 106) | def forward(self, x): class MultiPeriodDiscriminator (line 120) | class MultiPeriodDiscriminator(torch.nn.Module): method __init__ (line 121) | def __init__(self, use_spectral_norm=False): method forward (line 129) | def forward(self, y, y_hat): class MultiScaleDiscriminator (line 145) | class MultiScaleDiscriminator(torch.nn.Module): method __init__ (line 146) | def __init__(self): method forward (line 157) | def forward(self, y, y_hat): FILE: src/so_vits_svc_fork/modules/encoders.py class SpeakerEncoder (line 9) | class SpeakerEncoder(torch.nn.Module): method __init__ (line 10) | def __init__( method forward (line 22) | def forward(self, mels): method compute_partial_slices (line 28) | def compute_partial_slices(self, total_frames, partial_frames, partial... method embed_utterance (line 36) | def embed_utterance(self, mel, partial_frames=128, partial_hop=64): class Encoder (line 57) | class Encoder(nn.Module): method __init__ (line 58) | def __init__( method forward (line 87) | def forward(self, x, x_lengths, g=None): class TextEncoder (line 98) | class TextEncoder(nn.Module): method __init__ (line 99) | def __init__( method forward (line 121) | def forward(self, x, x_mask, f0=None, noice_scale=1): FILE: src/so_vits_svc_fork/modules/flows.py class ResidualCouplingBlock (line 6) | class ResidualCouplingBlock(nn.Module): method __init__ (line 7) | def __init__( method forward (line 41) | def forward(self, x, x_mask, g=None, reverse=False): FILE: src/so_vits_svc_fork/modules/losses.py function feature_loss (line 4) | def feature_loss(fmap_r, fmap_g): function discriminator_loss (line 15) | def discriminator_loss(disc_real_outputs, disc_generated_outputs): function generator_loss (line 31) | def generator_loss(disc_outputs): function kl_loss (line 43) | def kl_loss(z_p, logs_q, m_p, logs_p, z_mask): FILE: src/so_vits_svc_fork/modules/mel_processing.py function dynamic_range_compression_torch (line 60) | def dynamic_range_compression_torch(x, C=1, clip_val=1e-5): function dynamic_range_decompression_torch (line 69) | def dynamic_range_decompression_torch(x, C=1): function spectral_normalize_torch (line 78) | def spectral_normalize_torch(magnitudes): function spectral_de_normalize_torch (line 83) | def spectral_de_normalize_torch(magnitudes): function spectrogram_torch (line 92) | def spectrogram_torch(y, hps, center=False): function spec_to_mel_torch (line 130) | def spec_to_mel_torch(spec, hps): function mel_spectrogram_torch (line 147) | def mel_spectrogram_torch(y, hps, center=False): FILE: src/so_vits_svc_fork/modules/modules.py class LayerNorm (line 13) | class LayerNorm(nn.Module): method __init__ (line 14) | def __init__(self, channels, eps=1e-5): method forward (line 22) | def forward(self, x): class ConvReluNorm (line 28) | class ConvReluNorm(nn.Module): method __init__ (line 29) | def __init__( method forward (line 66) | def forward(self, x, x_mask): class DDSConv (line 76) | class DDSConv(nn.Module): method __init__ (line 81) | def __init__(self, channels, kernel_size, n_layers, p_dropout=0.0): method forward (line 110) | def forward(self, x, x_mask, g=None): class WN (line 125) | class WN(torch.nn.Module): method __init__ (line 126) | def __init__( method forward (line 175) | def forward(self, x, x_mask, g=None, **kwargs): method remove_weight_norm (line 202) | def remove_weight_norm(self): class ResBlock1 (line 211) | class ResBlock1(torch.nn.Module): method __init__ (line 212) | def __init__(self, channels, kernel_size=3, dilation=(1, 3, 5)): method forward (line 286) | def forward(self, x, x_mask=None): method remove_weight_norm (line 301) | def remove_weight_norm(self): class ResBlock2 (line 308) | class ResBlock2(torch.nn.Module): method __init__ (line 309) | def __init__(self, channels, kernel_size=3, dilation=(1, 3)): method forward (line 337) | def forward(self, x, x_mask=None): method remove_weight_norm (line 348) | def remove_weight_norm(self): class Log (line 353) | class Log(nn.Module): method forward (line 354) | def forward(self, x, x_mask, reverse=False, **kwargs): class Flip (line 364) | class Flip(nn.Module): method forward (line 365) | def forward(self, x, *args, reverse=False, **kwargs): class ElementwiseAffine (line 374) | class ElementwiseAffine(nn.Module): method __init__ (line 375) | def __init__(self, channels): method forward (line 381) | def forward(self, x, x_mask, reverse=False, **kwargs): class ResidualCouplingLayer (line 392) | class ResidualCouplingLayer(nn.Module): method __init__ (line 393) | def __init__( method forward (line 427) | def forward(self, x, x_mask, g=None, reverse=False): FILE: src/so_vits_svc_fork/modules/synthesizers.py class SynthesizerTrn (line 25) | class SynthesizerTrn(nn.Module): method __init__ (line 30) | def __init__( method forward (line 165) | def forward(self, c, f0, uv, spec, g=None, c_lengths=None, spec_length... method infer (line 202) | def infer(self, c, f0, uv, g=None, noice_scale=0.35, predict_f0=False): FILE: src/so_vits_svc_fork/preprocessing/preprocess_classify.py function preprocess_classify (line 16) | def preprocess_classify(input_dir: Path | str, output_dir: Path | str, c... FILE: src/so_vits_svc_fork/preprocessing/preprocess_flist_config.py function preprocess_config (line 17) | def preprocess_config( FILE: src/so_vits_svc_fork/preprocessing/preprocess_hubert_f0.py function _process_one (line 30) | def _process_one( function _process_batch (line 108) | def _process_batch(filepaths: Iterable[Path], pbar_position: int, **kwar... function preprocess_hubert_f0 (line 120) | def preprocess_hubert_f0( FILE: src/so_vits_svc_fork/preprocessing/preprocess_resample.py function _get_unique_filename (line 27) | def _get_unique_filename(path: Path, existing_paths: Iterable[Path]) -> ... function is_relative_to (line 39) | def is_relative_to(path: Path, *other): function _preprocess_one (line 51) | def _preprocess_one( function preprocess_resample (line 92) | def preprocess_resample( FILE: src/so_vits_svc_fork/preprocessing/preprocess_speaker_diarization.py function _process_one (line 18) | def _process_one( function preprocess_speaker_diarization (line 57) | def preprocess_speaker_diarization( FILE: src/so_vits_svc_fork/preprocessing/preprocess_split.py function _process_one (line 15) | def _process_one( function preprocess_split (line 48) | def preprocess_split( FILE: src/so_vits_svc_fork/preprocessing/preprocess_utils.py function check_hubert_min_duration (line 4) | def check_hubert_min_duration(audio: ndarray, sr: int) -> bool: FILE: src/so_vits_svc_fork/train.py class VCDataModule (line 38) | class VCDataModule(pl.LightningDataModule): method __init__ (line 41) | def __init__(self, hparams: Any): method train_dataloader (line 53) | def train_dataloader(self): method val_dataloader (line 62) | def val_dataloader(self): function train (line 70) | def train(config_path: Path | str, model_path: Path | str, reset_optimiz... class VitsLightning (line 139) | class VitsLightning(pl.LightningModule): method __init__ (line 140) | def __init__(self, reset_optimizer: bool = False, **hparams: Any): method on_train_start (line 172) | def on_train_start(self) -> None: method on_train_end (line 250) | def on_train_end(self) -> None: method save_checkpoints (line 253) | def save_checkpoints(self, adjust=1): method set_current_epoch (line 287) | def set_current_epoch(self, epoch: int): method set_global_step (line 293) | def set_global_step(self, global_step: int): method set_total_batch_idx (line 299) | def set_total_batch_idx(self, total_batch_idx: int): method total_batch_idx (line 306) | def total_batch_idx(self) -> int: method load (line 309) | def load(self, reset_optimizer: bool = False): method configure_optimizers (line 334) | def configure_optimizers(self): method log_image_dict (line 337) | def log_image_dict(self, image_dict: dict[str, Any], dataformats: str ... method log_audio_dict (line 348) | def log_audio_dict(self, audio_dict: dict[str, Any]) -> None: method log_dict_ (line 361) | def log_dict_(self, log_dict: dict[str, Any], **kwargs) -> None: method log_ (line 371) | def log_(self, key: str, value: Any, **kwargs) -> None: method training_step (line 374) | def training_step(self, batch: dict[str, torch.Tensor], batch_idx: int... method validation_step (line 496) | def validation_step(self, batch, batch_idx): method on_validation_end (line 513) | def on_validation_end(self) -> None: FILE: src/so_vits_svc_fork/utils.py function get_optimal_device (line 34) | def get_optimal_device(index: int = 0) -> torch.device: function download_file (line 51) | def download_file( function ensure_pretrained_model (line 110) | def ensure_pretrained_model(folder_path: Path | str, type_: str | dict[s... class HubertModelWithFinalProj (line 153) | class HubertModelWithFinalProj(HubertModel): method __init__ (line 154) | def __init__(self, config): function remove_weight_norm_if_exists (line 163) | def remove_weight_norm_if_exists(module, name: str = "weight"): function get_hubert_model (line 185) | def get_hubert_model(device: str | torch.device, final_proj: bool = True... function get_content (line 198) | def get_content( function _substitute_if_same_shape (line 225) | def _substitute_if_same_shape(to_: dict[str, Any], from_: dict[str, Any]... function safe_load (line 252) | def safe_load(model: torch.nn.Module, state_dict: dict[str, Any]) -> None: function load_checkpoint (line 258) | def load_checkpoint( function save_checkpoint (line 288) | def save_checkpoint( function clean_checkpoints (line 312) | def clean_checkpoints(path_to_models: Path | str, n_ckpts_to_keep: int =... function latest_checkpoint_path (line 353) | def latest_checkpoint_path(dir_path: Path | str, regex: str = "G_*.pth")... function plot_spectrogram_to_numpy (line 362) | def plot_spectrogram_to_numpy(spectrogram: ndarray) -> ndarray: function get_backup_hparams (line 378) | def get_backup_hparams(config_path: Path, model_path: Path, init: bool =... function get_hparams (line 396) | def get_hparams(config_path: Path | str) -> HParams: function repeat_expand_2d (line 402) | def repeat_expand_2d(content: torch.Tensor, target_len: int) -> torch.Te... function plot_data_to_numpy (line 411) | def plot_data_to_numpy(x: ndarray, y: ndarray) -> ndarray: function get_gpu_memory (line 425) | def get_gpu_memory(type_: Literal["total", "free", "used"]) -> Sequence[... function get_total_gpu_memory (line 435) | def get_total_gpu_memory(type_: Literal["total", "free", "used"]) -> int... FILE: tests/test_main.py class TestMain (line 10) | class TestMain(TestCase): method test_import (line 11) | def test_import(self): method test_infer (line 22) | def test_infer(self): method test_preprocess (line 29) | def test_preprocess(self): method test_train (line 57) | def test_train(self):