当前位置:   article > 正文

HuggingFace学习笔记--Trainer的使用_trainer.evaluate()

trainer.evaluate()

1--Trainer的使用

        利用 Trainer 可以快速进行模型训练的配置,一般需要设置训练的模型以及训练相关参数等;

1-1--简单Demo代码

  1. import evaluate
  2. from datasets import load_dataset
  3. from transformers import AutoTokenizer, AutoModelForSequenceClassification, Trainer, TrainingArguments, DataCollatorWithPadding
  4. tokenizer = AutoTokenizer.from_pretrained("hfl/rbt3") # 分词
  5. def process_function(examples):
  6. tokenized_examples = tokenizer(examples["review"], max_length=128, truncation=True)
  7. tokenized_examples["labels"] = examples["label"]
  8. return tokenized_examples
  9. # 创建评估函数
  10. acc_metric = evaluate.load("accuracy")
  11. f1_metirc = evaluate.load("f1")
  12. def eval_metric(eval_predict):
  13. predictions, labels = eval_predict
  14. predictions = predictions.argmax(axis=-1)
  15. acc = acc_metric.compute(predictions=predictions, references=labels)
  16. f1 = f1_metirc.compute(predictions=predictions, references=labels)
  17. acc.update(f1)
  18. return acc
  19. if __name__ == "__main__":
  20. # 处理数据集
  21. dataset = load_dataset("csv", data_files="./ChnSentiCorp_htl_all.csv", split="train")
  22. dataset = dataset.filter(lambda x: x["review"] is not None) # 过滤字段 review 为 None 的数据
  23. datasets = dataset.train_test_split(test_size = 0.1) # 划分训练和测试集
  24. tokenized_datasets = datasets.map(process_function, batched = True, remove_columns = datasets["train"].column_names)
  25. # 初始化模型
  26. model = AutoModelForSequenceClassification.from_pretrained("hfl/rbt3")
  27. # print(model.config)
  28. # 训练参数
  29. train_args = TrainingArguments(output_dir="./checkpoints", # 输出文件夹
  30. per_device_train_batch_size=64, # 训练时的batch_size
  31. per_device_eval_batch_size=128, # 验证时的batch_size
  32. logging_steps=10, # log 打印的频率
  33. evaluation_strategy="epoch", # 评估策略
  34. num_train_epochs = 5, # 训练epoch数
  35. save_strategy="epoch", # 保存策略
  36. save_total_limit=3, # 最大保存数
  37. learning_rate=2e-5, # 学习率
  38. weight_decay=0.01, # weight_decay
  39. metric_for_best_model="f1", # 设定评估指标
  40. load_best_model_at_end=True) # 训练完成后加载最优模型
  41. # 创建trainer
  42. trainer = Trainer(model = model, # 训练模型
  43. args = train_args, # 训练参数
  44. train_dataset = tokenized_datasets["train"], # 训练集
  45. eval_dataset = tokenized_datasets["test"], # 测试集
  46. data_collator = DataCollatorWithPadding(tokenizer=tokenizer),
  47. compute_metrics = eval_metric) # 评估函数
  48. # 模型训练
  49. trainer.train()
  50. # 模型评估
  51. trainer.evaluate(tokenized_datasets["test"])
  52. # 模型测试
  53. trainer.predict(tokenized_datasets["test"])
  54. print("All done!")

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/364827
推荐阅读
相关标签
  

闽ICP备14008679号