Traceback (most recent call last): File "/home/amaan/code/DL_Simulation/mtl_former.py", line 302, in train() File "/home/amaan/code/DL_Simulation/mtl_former.py", line 111, in train best = fmin( File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/hyperopt/fmin.py", line 540, in fmin return trials.fmin( File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/hyperopt/base.py", line 671, in fmin return fmin( File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/hyperopt/fmin.py", line 586, in fmin rval.exhaust() File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/hyperopt/fmin.py", line 364, in exhaust self.run(self.max_evals - n_done, block_until_done=self.asynchronous) File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/hyperopt/fmin.py", line 300, in run self.serial_evaluate() File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/hyperopt/fmin.py", line 178, in serial_evaluate result = self.domain.evaluate(spec, ctrl) File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/hyperopt/base.py", line 892, in evaluate rval = self.fn(pyll_rval) File "/home/amaan/code/DL_Simulation/mtl_former.py", line 112, in fn=lambda x: train_single(x, opt_run_id), File "/home/amaan/code/DL_Simulation/mtl_former.py", line 181, in train_single val_loss = model_transformer._training_model( File "/home/amaan/code/DL_Simulation/model_training/models/model_transformer.py", line 398, in _training_model final_val_loss = BaseTrainingMethods.training_suffix( File "/home/amaan/code/DL_Simulation/model_training/models/model_base.py", line 200, in training_suffix trainer.test( File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 753, in test return call._call_and_handle_interrupt( File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 44, in _call_and_handle_interrupt return trainer_fn(*args, **kwargs) File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 793, in _test_impl results = self._run(model, ckpt_path=ckpt_path) File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 986, in _run results = self._run_stage() File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1023, in _run_stage return self._evaluation_loop.run() File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/pytorch_lightning/loops/utilities.py", line 182, in _decorator return loop_run(self, *args, **kwargs) File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/pytorch_lightning/loops/evaluation_loop.py", line 142, in run return self.on_run_end() File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/pytorch_lightning/loops/evaluation_loop.py", line 274, in on_run_end self._print_results(logged_outputs, self._stage.value) File "/home/amaan/.conda/envs/dl/lib/python3.9/site-packages/pytorch_lightning/loops/evaluation_loop.py", line 552, in _print_results if sys.stdout.encoding is not None: AttributeError: 'DummyTqdmFile' object has no attribute 'encoding'
Я тренировал модель. Исключение происходит при вызове Trainer.test. Код работает нормально, когда этот вызов закомментирован. Однако при отладке этот самый вызов выполняется без ошибок в консоли отладки.
@staticmethod
def training_suffix(model, args, output_folder, wandb_logger, datamodule, run):
# Callbacks
early_stopping, checkpoint_callback, lr_monitor = (
CallbackStorage.get_default_callbacks(
output_folder=output_folder, filename="model"
)
)
# Trainer
args['epochs'] = 2 if args['debug'] else args['epochs'] # set epochs to 2 for debug
trainer = pl.Trainer(
fast_dev_run=False,
max_epochs=args["epochs"],
#max_epochs=2,
callbacks=[early_stopping, checkpoint_callback, lr_monitor],
accelerator="gpu" if torch.cuda.is_available() else "cpu",
logger=wandb_logger,
check_val_every_n_epoch=1,
)
# Training & Testing
trainer.fit(model, datamodule=datamodule)
final_val_loss = float(trainer.callback_metrics.get("val_loss"))
print("Final val_loss: ", final_val_loss)
trainer.test(
ckpt_path='best',
dataloaders=datamodule.val_dataloader(),
)
wandb_reference = {
'entitiy' : run.entity,
'project' : run.project,
'id' : run.id
}
with open(os.path.join(output_folder, "wandb_information.json"), "w") as file:
json.dump(wandb_reference, file)
wandb.finish()
return final_val_loss
Подробнее здесь: https://stackoverflow.com/questions/788 ... e-encoding