|
import torch |
|
import config |
|
|
|
|
|
def categorical_accuracy(preds, y): |
|
""" |
|
Returns accuracy per batch, i.e. if you get 8/10 right, this returns 0.8, NOT 8 |
|
""" |
|
max_preds = preds.argmax( |
|
dim=1, keepdim=True) |
|
correct = max_preds.squeeze(1).eq(y) |
|
return correct.sum() / torch.FloatTensor([y.shape[0]]) |
|
|
|
def label_encoder(x): |
|
label_vec = {"0": 0, "1": 1, "-1": 2} |
|
return label_vec[x.replace("__label__", "")] |
|
|
|
def label_decoder(x): |
|
label_vec = { 0:"U", 1:"P", 2:"N"} |
|
return label_vec[x] |
|
|
|
def label_full_decoder(x): |
|
label_vec = { 0:"Neutral", 1:"Positive", 2:"Negative"} |
|
return label_vec[x] |
|
|
|
|