当前位置: 首页 > ai >正文

BERT情感分类

参考B站BigC_666:微调BERT模型做情感分类实战,代码逐行讲解,100%可以跑通!!! 一键三连+关注,私信即可获得代码_哔哩哔哩_bilibili

 大致记录下出现了哪些问题

首先第一个问题是,huggingface.co无法访问,通过修改环境变量让目标地址改到镜像地址也没起作用,最终解决方案是挂代理下载了

import os
os.environ['HTTP_PROXY'] = 'http://127.0.0.1:7890'
os.environ['HTTPS_PROXY'] = 'http://127.0.0.1:7890'

后面就是jupyter代码了,修改了评估的部分

from datasets import load_datasetimport osimport os
os.environ['HTTP_PROXY'] = 'http://127.0.0.1:7890'
os.environ['HTTPS_PROXY'] = 'http://127.0.0.1:7890'os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
dataset = load_dataset("imdb")
print(dataset)import datasets
print(datasets.config.HF_DATASETS_CACHE)from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
print("done")
def tokenizer_func(examples):return tokenizer(examples['text'],padding='max_length',truncation=True)
tokens_dataset = dataset.map(tokenizer_func,batched=True)
print(tokens_dataset)
print(tokens_dataset['train'][0])
train_dataset = tokens_dataset['train'].select(range(5000))
test_dataset = tokens_dataset['test'].shuffle(42).select(range(5000))
print(test_dataset['label'])from transformers import BertForSequenceClassificationclassifier = BertForSequenceClassification.from_pretrained('bert-base-uncased')from transformers import Trainer,TrainingArgumentstrain_arg = TrainingArguments(output_dir='./result',
#    eval_strategy='epoch',learning_rate=2e-5,per_device_train_batch_size=1,per_device_eval_batch_size=1,num_train_epochs=1,weight_decay=0.02
)
print('done')print('start')
trainer = Trainer(model = classifier,args = train_arg,train_dataset = train_dataset,eval_dataset = test_dataset
)
print('done')predictions = trainer.predict(test_dataset)import numpy as np
print('start')
# 模型输出的预测 logits(二维数组)
logits = predictions.predictions  # shape: (num_samples, num_classes)
labels = predictions.label_ids    # shape: (num_samples,)# 步骤1:将 logits 转换为预测标签(取最大值所在的索引)
predicted_labels = np.argmax(logits, axis=1)# 步骤2:计算准确率
accuracy = np.mean(predicted_labels == labels)print(f"Accuracy: {accuracy:.4f}")trainer.train()# metric = trainer.evaluate()
print(test_dataset['label'])predictions = trainer.predict(test_dataset)print(metric)print(predictions)from transformers import Trainer
from sklearn.metrics import accuracy_score
import numpy as np# 1. 定义 compute_metrics
def compute_metrics(eval_pred):predictions, labels = eval_predpreds = np.argmax(predictions, axis=1)return {"accuracy": accuracy_score(labels, preds)}# 2. 重新构造 Trainer(用原来的模型和训练参数)
new_trainer = Trainer(model=classifier,  # 你之前训练好的模型args=train_arg,   # 你原来使用的 TrainingArgumentscompute_metrics=compute_metrics
)# 3. 调用 predict
results = new_trainer.predict(test_dataset)print("准确率:", results.metrics["test_accuracy"])

代码比较混乱,可读性比较差,实验性质,各种参数没有详细的考量

http://www.xdnf.cn/news/13273.html

相关文章:

  • net中Serilog 使用json配置输出日志
  • linux arm系统烧录
  • 铭豹扩展坞 USB转网口 突然无法识别解决方法
  • 参数量计算举例
  • Text GRAD使用场景的案例分析
  • 深度剖析 iPaaS 数据蜂巢:企业数字化集成的关键力量
  • 电子商务平台的安全防护
  • window7 wpf程序打不开问题排查及处理
  • 豆包全新视频生成模型、视觉深度思考模型发布
  • SecureCRT 配色方案 VBScript 脚本
  • SSM框架整合
  • GO 语言中的flag包--易懂解释
  • 编译原理实验 之 TINY 解释测试目标代码
  • 【多智能体】受木偶戏启发实现多智能体协作编排
  • 研发效能利器之驭码CodeRider
  • JAVA语言的学习(Day_1)
  • 2025盘古石杯决赛【计算机取证】
  • 【docker n8n】本地台式机A部署后,其他电脑B、C如何访问n8n?
  • 第二十二章 USB 全速设备接口(USB)
  • P4 QT项目----串口助手(4.2)
  • 力扣HOT100之堆:215. 数组中的第K个最大元素
  • crackme008
  • 7zip超详细安装教程(含最新版本)压缩软件使用全解析
  • 【LangChain】1 模型,提示和输出解释器
  • STM32外部中断(寄存器和hal库实现)
  • 机房断电后 etcd 启动失败的排查与快速恢复实录
  • YOLOv11 | 注意力机制篇 | EMAttention与C2PSA机制的协同优化
  • 从0到1:HBase安装与操作指南
  • 3.vue3核心语法
  • 中马泰语言电商系统:打开东南亚电商市场的多语言钥匙