2021-08-07 11:56:00 +08:00
|
|
|
from utils.argutils import print_args
|
2022-12-03 16:54:06 +08:00
|
|
|
from models.encoder.train import train
|
2021-08-07 11:56:00 +08:00
|
|
|
from pathlib import Path
|
|
|
|
import argparse
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
parser = argparse.ArgumentParser(
|
|
|
|
description="Trains the speaker encoder. You must have run encoder_preprocess.py first.",
|
|
|
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter
|
|
|
|
)
|
|
|
|
|
|
|
|
parser.add_argument("run_id", type=str, help= \
|
|
|
|
"Name for this model instance. If a model state from the same run ID was previously "
|
|
|
|
"saved, the training will restart from there. Pass -f to overwrite saved states and "
|
|
|
|
"restart from scratch.")
|
|
|
|
parser.add_argument("clean_data_root", type=Path, help= \
|
|
|
|
"Path to the output directory of encoder_preprocess.py. If you left the default "
|
|
|
|
"output directory when preprocessing, it should be <datasets_root>/SV2TTS/encoder/.")
|
|
|
|
parser.add_argument("-m", "--models_dir", type=Path, default="encoder/saved_models/", help=\
|
|
|
|
"Path to the output directory that will contain the saved model weights, as well as "
|
|
|
|
"backups of those weights and plots generated during training.")
|
|
|
|
parser.add_argument("-v", "--vis_every", type=int, default=10, help= \
|
|
|
|
"Number of steps between updates of the loss and the plots.")
|
|
|
|
parser.add_argument("-u", "--umap_every", type=int, default=100, help= \
|
|
|
|
"Number of steps between updates of the umap projection. Set to 0 to never update the "
|
|
|
|
"projections.")
|
|
|
|
parser.add_argument("-s", "--save_every", type=int, default=500, help= \
|
|
|
|
"Number of steps between updates of the model on the disk. Set to 0 to never save the "
|
|
|
|
"model.")
|
|
|
|
parser.add_argument("-b", "--backup_every", type=int, default=7500, help= \
|
|
|
|
"Number of steps between backups of the model. Set to 0 to never make backups of the "
|
|
|
|
"model.")
|
|
|
|
parser.add_argument("-f", "--force_restart", action="store_true", help= \
|
|
|
|
"Do not load any saved model.")
|
|
|
|
parser.add_argument("--visdom_server", type=str, default="http://localhost")
|
|
|
|
parser.add_argument("--no_visdom", action="store_true", help= \
|
|
|
|
"Disable visdom.")
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
# Process the arguments
|
|
|
|
args.models_dir.mkdir(exist_ok=True)
|
|
|
|
|
|
|
|
# Run the training
|
|
|
|
print_args(args, parser)
|
|
|
|
train(**vars(args))
|
|
|
|
|