|  | from pathlib import Path | 
					
						
						|  |  | 
					
						
						|  | def get_config(): | 
					
						
						|  | return { | 
					
						
						|  | "batch_size": 4, | 
					
						
						|  | "num_epochs": 10, | 
					
						
						|  | "lr": 10**-4, | 
					
						
						|  | "seq_len": 350, | 
					
						
						|  | "d_model": 512, | 
					
						
						|  | "datasource": 'opus_books', | 
					
						
						|  | "lang_src": "en", | 
					
						
						|  | "lang_tgt": "it", | 
					
						
						|  | "model_folder": "weights", | 
					
						
						|  | "model_basename": "tmodel_", | 
					
						
						|  | "preload": "latest", | 
					
						
						|  | "tokenizer_file": "tokenizer_{0}.json", | 
					
						
						|  | "experiment_name": "runs/tmodel" | 
					
						
						|  | } | 
					
						
						|  |  | 
					
						
						|  | def get_weights_file_path(config, epoch: str): | 
					
						
						|  | model_folder = f"{config['datasource']}_{config['model_folder']}" | 
					
						
						|  | model_filename = f"{config['model_basename']}{epoch}.pt" | 
					
						
						|  | return str(Path('.') / model_folder / model_filename) | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | def latest_weights_file_path(config): | 
					
						
						|  | model_folder = f"{config['datasource']}_{config['model_folder']}" | 
					
						
						|  | model_filename = f"{config['model_basename']}*" | 
					
						
						|  | weights_files = list(Path(model_folder).glob(model_filename)) | 
					
						
						|  | if len(weights_files) == 0: | 
					
						
						|  | return None | 
					
						
						|  | weights_files.sort() | 
					
						
						|  | return str(weights_files[-1]) |