'am i measuring the accuracy of the model correctly?

first of all, thanks for visiting my questions.

in multi label classification problem, i wonder if i measure accuracy correcyly.

the label data are one-hot encoded, and it shape (1000) e.g. (0, 1, 0, 0, .... 0, 1)

i used res50(in 3 gpus) for training, which implemented in pytorch.models

However, the accuracy of the model is higher than expected and the early epoch already outputs a high value.

am i measuring the accuracy of the model correctly?

codes below

`def train(log_interval, model, device, train_loader, criterion, optimizer, epoch):

model.train()
running_loss = 0
running_correct = 0
_iter = 0
for batch_idx, (data, target) in enumerate(train_loader):
    data, target = data.to(device), target.to(device)
    model.zero_grad()

    #output = F.softmax(model(data), dim=1)
    output = model(data)
     
    loss = criterion(output, target.type(torch.cuda.LongTensor))

    loss.backward()
    optimizer.step()

    pred = torch.sigmoid(output)
    pred[pred >= 0.5]=1
    pred[pred < 0.5]=0
    
    running_loss += loss.item() * data.size(0)
    running_correct += (pred == target).sum()/(target.size(0)*target.size(1))
    _iter += 1
epoch_loss = running_loss / len(train_loader.dataset)
epoch_acc = running_correct / _iter
print('Epochs : {}, train loss : {:4f}, train acc : {:4f}'.format(epoch, epoch_loss, epoch_acc))`


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source