text-classification - 如何使用基于变压器的模型绘制训练损失与验证损失
问题描述
我正在为仇恨语音检测任务微调 XLM-R 模型,我想绘制训练损失与验证损失,我应该怎么做?当我尝试收集 loss_values 并将它们绘制如下:
for i, batch in tqdm(enumerate(train_dataloader)):
cnt += 1
b_input_ids = batch[1]
b_input_mask = batch[2]
b_labels = batch[taskIndex]
# sent the data to "device"
b_input_ids = b_input_ids.to(device)
b_input_mask = b_input_mask.to(device)
b_labels = b_labels.to(device)
pred = model(b_input_ids,b_input_mask)
loss = loss_function(pred.view(-1, classNum), b_labels.view(-1))
with torch.no_grad():
epoch_loss += (loss.item() * len(b_labels))
loss_values.append(loss.item())
global_pred.append(pred)
global_label.append(b_labels)
optimizer.zero_grad()
loss.backward()
optimizer.step()
# scheduler.step()
print("Traing loss plot: ")
plt.plot(loss_values)
return model
解决方案
推荐阅读
- macos - 我在我的mac上安装了httpd,它找不到模块
- c# - 为什么光线投射是以相反方向绘制的光线投射?
- flutter - 如何在颤动中画出带有尖头/渐变线/的线?
- documentation - Raku 的内省可以列出不同文件/模块中的所有多候选吗?
- java - WADL2JAVA:Gradle 插件
- stripe-payments - 条纹卡支票返回 null
- c++ - 如何在 MacOS XCode 上以发布模式编译?
- javascript - 检测移动设备上的触摸移动事件
- android - React native 我的应用程序不会显示 API GET 调用的任何结果
- c# - 为不同的难度创造多个高分