Example #1
0
import os
import torch.optim

from data_loader import LabelledTextDS
from models import FastText
from plotting import *
from training import train_model
import pandas as pd

num_epochs = 50
num_hidden = 40  # Number of hidden neurons in model

dev = 'cuda' if torch.cuda.is_available(
) else 'cpu'  # If you have a GPU installed, use that, otherwise CPU
dataset = LabelledTextDS(os.path.join('data', 'labelled_movie_reviews.csv'),
                         dev=dev)

imdb_data = pd.read_csv('data/labelled_movie_reviews.csv')

model = FastText(
    len(dataset.token_to_id) + 2, num_hidden, len(dataset.class_to_id)).to(dev)
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.9)

losses, accuracies = train_model(dataset, model, optimizer, num_epochs)
torch.save(model, os.path.join('saved_models', 'classifier.pth'))

print('')
print_accuracies(accuracies)
plot_losses(losses)
import os
from sklearn.linear_model import LogisticRegression

from data_loader import LabelledTextDS
from plotting import *

dataset = LabelledTextDS(os.path.join('data', 'labelled_movie_reviews.csv'))
train, valid, test = dataset.get_vector_representation()

model = LogisticRegression(
)  # You can change the hyper-parameters of the model by passing args here

model.fit(train[0], train[1])
train_accuracy = (model.predict(train[0]) == train[1]).astype(float).mean()
valid_accuracy = (model.predict(valid[0]) == valid[1]).astype(float).mean()
test_accuracy = (model.predict(test[0]) == test[1]).astype(float).mean()

print_accuracies((train_accuracy, valid_accuracy, test_accuracy))