小编Jim*_*eak的帖子

PyTorch 中的高效指标评估

我是 PyTorch 的新手,希望在我的训练和验证循环期间有效地评估其他 F1。

到目前为止,我的方法是在 GPU 上计算预测,然后将它们推送到 CPU 并将它们附加到用于训练和验证的向量。在训练和验证之后,我将使用 sklearn 对每个 epoch 进行评估。但是,分析我的代码显示,推送到 cpu 是一个相当大的瓶颈。

for epoch in range(n_epochs):
    model.train()
    avg_loss = 0
    avg_val_loss = 0
    train_pred = np.array([])
    val_pred = np.array([])
    # Training loop (transpose X_batch to fit pretrained (features, samples) style)
    for X_batch, y_batch in train_loader:
        scores = model(X_batch)
        y_pred = F.softmax(scores, dim=1)
        train_pred = np.append(train_pred, self.get_vector(y_pred.detach().cpu().numpy()))

        loss = loss_fn(scores, self.get_vector(y_batch))
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        avg_loss += loss.item() / len(train_loader)

    model.eval()
    # Validation loop
    for X_batch, y_batch in val_loader: …
Run Code Online (Sandbox Code Playgroud)

python nlp deep-learning pytorch

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

deep-learning ×1

nlp ×1

python ×1

pytorch ×1