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))