【发布时间】:2020-08-16 11:49:33
【问题描述】:
我正在运行 https://github.com/huggingface/transformers/blob/master/examples/run_glue.py 来对二元分类任务 (CoLA) 进行微调。 我想同时监控训练和评估损失,以防止过度拟合。
目前库是 2.8.0,我是从源代码安装的。
当我使用
运行示例时python run_glue.py --model_name_or_path bert-base-uncased
--task_name CoLA
--do_train
--do_eval
--data_dir my_dir
--max_seq_length 128
--per_gpu_train_batch_size 8
--per_gpu_eval_batch_size 8
--learning_rate 2e-5
--num_train_epochs 3.0
--output_dir ./outputs
--logging_steps 5
在标准输出日志中,我看到带有单个损失值的行,例如
{“学习率”:3.3333333333333333e-06,“损失”:0.47537623047828675, “步骤”:25}
通过查看https://github.com/huggingface/transformers/blob/master/src/transformers/trainer.py,我看到在那里计算了训练和评估损失(在我看来,代码最近被重构了)。
cr_loss = self._training_step(model, inputs, optimizer)
tr_loss += cr_loss
logs["training loss"] = cr_loss
我得到了:
0502 14:12:18.644119 23632 summary.py:47] Summary name training loss is illegal; using training_loss instead.
| 4/10 [00:02<00:04, 1.49it/s]
{"learning_rate": 3.3333333333333333e-06, "loss": 0.47537623047828675, "training loss": 0.5451719760894775, "step": 25}
这样可以吗,还是我在这里做错了什么?
在标准输出中监控两者在微调期间给定记录间隔的平均训练和评估损失的最佳方法是什么?
【问题讨论】:
标签: python pytorch huggingface-transformers