MCPcopy Create free account
hub / github.com/LUMIA-Group/MemoryDecoder / main

Function main

train_base.py:207–404  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

205 probe: int = field(default=32)
206
207def main():
208 # -----------------------------------------------------------Arguments-----------------------------------------------------------
209
210 parser = HfArgumentParser((ModelArguments, DataTrainingArguments, TrainingArguments, KNNArguments))
211 if len(sys.argv) == 2 and sys.argv[1].endswith(".json"):
212 # If we pass only one argument to the script and it's the path to a json file,
213 # let's parse it to get our arguments.
214 model_args, data_args, training_args, knn_args = parser.parse_json_file(json_file=os.path.abspath(sys.argv[1]))
215 else:
216 model_args, data_args, training_args, knn_args = parser.parse_args_into_dataclasses()
217
218 # Setup logging
219 if training_args.should_log:
220 # The default of training_args.log_level is passive, so we set log level at info here to have that default.
221 transformers.utils.logging.set_verbosity_info()
222 log_level = training_args.get_process_log_level()
223
224 logger.remove()
225 logger.add(sys.stdout, format = "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level}</level> | <blue>{process.name}</blue> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>", level=log_level)
226
227 # Intercept default logging and transform to loguru
228 class InterceptHandler(logging.Handler):
229 def emit(self, record: logging.LogRecord) -> None:
230 # Get corresponding Loguru level if it exists.
231 level: str | int
232 try:
233 level = logger.level(record.levelname).name
234 except ValueError:
235 level = record.levelno
236
237 # Find caller from where originated the logged message.
238 frame, depth = inspect.currentframe(), 0
239 while frame and (depth == 0 or frame.f_code.co_filename == logging.__file__):
240 frame = frame.f_back
241 depth += 1
242
243 logger.opt(depth=depth, exception=record.exc_info).log(level, record.getMessage())
244
245 logging.basicConfig(handlers=[InterceptHandler()], level=log_level, force=True)
246 datasets.utils.logging.set_verbosity(datasets.logging.WARNING)
247 transformers.utils.logging.set_verbosity(log_level)
248 transformers.utils.logging.disable_default_handler()
249 transformers.utils.logging.add_handler(InterceptHandler())
250
251 # Log on each process the small summary:
252 logger.warning(
253 f"Process rank: {training_args.local_rank}, device: {training_args.device}, n_gpu: {training_args.n_gpu}"
254 + f"distributed training: {bool(training_args.local_rank != -1)}, 16-bits training: {training_args.fp16}"
255 )
256 logger.info(f"Training/evaluation parameters {training_args}")
257 logger.info(f"kNN parameters {knn_args}")
258
259 # Detecting last checkpoint.
260 last_checkpoint = None
261 if os.path.isdir(training_args.output_dir) and training_args.do_train and not training_args.overwrite_output_dir:
262 last_checkpoint = get_last_checkpoint(training_args.output_dir)
263 if last_checkpoint is None and len(os.listdir(training_args.output_dir)) > 0:
264 raise ValueError(

Callers 1

train_base.pyFile · 0.70

Calls 5

break_intoMethod · 0.95
break_outMethod · 0.95
KNNWrapperMultiClass · 0.90
KNNSaverMultiClass · 0.90
InterceptHandlerClass · 0.70

Tested by

no test coverage detected