Ejemplo n.º 1
0
 def __init__(self, training, testing, model):
     self.model = model
     self.train_loader = dataset.loader(training)
     self.loss = torch.nn.CrossEntropyLoss()
     self.test_loader = dataset.test_loader(testing)
     self.model.train()
     self.prunner = FilterPrunner(self.model)
Ejemplo n.º 2
0
    def __init__(self, train_path, test_path, model):
        self.train_data_loader = dataset.loader(train_path)
        self.test_data_loader  = dataset.test_loader(test_path)

        self.model = model
        self.criterion = torch.nn.CrossEntropyLoss()
        #self.prunner = FilterPr
        self.model.train()  #??
Ejemplo n.º 3
0
    def __init__(self, train_path, test_path, model, optimizer):
        self.train_data_loader = dataset.loader(train_path)
        self.test_data_loader = dataset.test_loader(test_path)

        self.optimizer = optimizer

        self.model = model
        self.criterion = torch.nn.CrossEntropyLoss()
        self.model.train()
Ejemplo n.º 4
0
    def __init__(self, train_path, test_path, model):
        print(' PrunningFineTuner_AlexNet init')
        self.train_data_loader = dataset.loader(train_path)
        self.test_data_loader = dataset.test_loader(test_path)

        self.model = model
        self.criterion = torch.nn.CrossEntropyLoss()
        print('PrunningFineTuner_AlexNet init filter prunner')
        self.prunner = FilterPrunner(self.model)
Ejemplo n.º 5
0
    def __init__(self, train_path, test_path, model):
        self.train_data_loader = dataset.loader(train_path)
        self.test_data_loader = dataset.test_loader(test_path)
        #self.test_single_loader = dataset.test_loader(test_single_path) # I am adding this line...

        self.model = model
        self.criterion = torch.nn.CrossEntropyLoss()
        self.prunner = FilterPrunner(self.model)
        self.model.train()
Ejemplo n.º 6
0
    def __init__(self, model, args):

        #self.train_data_loader,self.class_dict = dataset.loader(args.train_path, num_workers=args.num_workers,no_crop=args.no_crop,grayscale=args.grayscale)
        #self.test_data_loader = dataset.test_loader(args.test_path, num_workers=args.num_workers,no_crop=args.no_crop,grayscale=args.grayscale)
        self.train_data_loader, self.class_dict = dataset.loader(
            args.train_path, num_workers=args.num_workers)
        self.test_data_loader = dataset.test_loader(
            args.test_path, num_workers=args.num_workers)

        self.model = model
        self.criterion = torch.nn.CrossEntropyLoss()
        self.model.train()
        self.num_classes = args.num_classes
        self.seed = args.seed
Ejemplo n.º 7
0
    def __init__(self, model, args):

        #self.train_data_loader,self.class_dict = dataset.loader(args.train_path, num_workers=args.num_workers,no_crop=args.no_crop,grayscale = args.grayscale)
        #self.test_data_loader = dataset.test_loader(args.test_path, num_workers=args.num_workers,no_crop=args.no_crop,grayscale = args.grayscale)
        self.train_data_loader, self.class_dict = dataset.loader(
            args.train_path, num_workers=args.num_workers)
        self.test_data_loader = dataset.test_loader(
            args.test_path, num_workers=args.num_workers)

        self.model = model
        self.num_classes = self.model.out_channels
        self.criterion = torch.nn.CrossEntropyLoss()
        self.prunner = FilterPrunner(self.model)

        self.start = args.start
        self.indiv_acc = args.indiv_acc
        self.model.train()
        self.args = args
maxlen = int(maxlen)
folder = "/scratch/home/Projects/rnn_dropout/exps/"
filename = ("sa_DropoutLSTM_pW_%.2f_pU_%.2f_pDense_%.2f_pEmb_%.2f_reg_%f_batch_size_%d_cutoff_%d_epochs"
  % (p_W, p_U, p_dense, p_emb, weight_decay, batch_size, maxlen))
print(filename)

# Global params:
nb_words = 20000
skip_top = 0
test_split = 0.2
init_seed = 0
global_seed = 0

# Load data:
print("Loading data...")
dataset = loader(init_seed, maxlen, nb_words, skip_top, test_split)
X_train, X_test, Y_train, Y_test = dataset.X_train, dataset.X_test, dataset.Y_train, dataset.Y_test
mean_y_train, std_y_train = dataset.mean_y_train, dataset.std_y_train

# Set seed:
np.random.seed(global_seed)

# Build model:
print('Build model...')
model = Sequential()
model.add(Embedding(nb_words + dataset.index_from, 128, W_regularizer=l2(weight_decay),
                    dropout=p_emb, input_length=maxlen, batch_input_shape=(batch_size, maxlen)))
model.add(LSTM(128, W_regularizer=l2(weight_decay), U_regularizer=l2(weight_decay),
               b_regularizer=l2(weight_decay), dropout_W=p_W, dropout_U=p_U))
model.add(Dropout(p_dense))
model.add(Dense(1, W_regularizer=l2(weight_decay), b_regularizer=l2(weight_decay)))
Ejemplo n.º 9
0
    preds = best_estimator.predict(X_test)
    mse = mean_squared_error(y_test, preds)
    return runtime, mse


def write_results(
    results
):  # Writes benchmarking results to a CSV file (pandas for this is overkill,
    df = DataFrame(results)  # but I'm lazy
    df.columns = ['Model', 'Runtime', 'MSE']
    df.to_csv("results.csv", index=False)


if __name__ == "__main__":
    print("Loading data...")
    X, y = loader()
    # del X, y
    print("Data loaded")

    xgb = XGBRegressor(n_estimators=n_estimators)
    dxgb = dXGBRegressor(n_estimators=n_estimators)

    descriptions = ["XGBoost", "XGBoost (dask-ml)"]
    results = []
    for estimator, description in zip([xgb, dxgb], descriptions):
        runtime, mse = benchmark(dxgb, param_grid, X, y)
        print("Model: {}".format(description))
        print("Runtime: {} s".format(runtime))
        print("MSE: {}".format(mse))
        results.append((description, runtime, mse))
Ejemplo n.º 10
0
            model.eval()
            pred = model(data, target)
            tg += sum(torch.eq(torch.LongTensor(p), t).sum() for p, t in zip(pred, target))
            tt += sum(map(len, data))


        # Eval
        model.eval()
        with torch.no_grad():
            eg, et = 0, 0
            for data, target in eval_loader:
                pred = model(data, target)
                eg += sum(torch.eq(torch.LongTensor(p), t).sum() for p, t in zip(pred, target)).int()
                et += sum(map(len, data))

            logging('Done epoch {}/{} ({} batches) train accuracy {:.2f}, eval accuracy {:.2f} avg loss {:.5f}'.format(
                epoch+1, epochs, (epoch+1)*train_loader.__len__(), float(tg) / tt, float(eg) / et, avg_loss))

def logging(message):
    print('{} {}'.format(dtm.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")[:-3], message))


if __name__ == "__main__":
    torch.manual_seed(1)
    device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
    data = TagData('pos')
    model = LSTMCRF(vocab_size=len(data.words), embed_dim=100, hidden_dim=100
                    , num_tags=len(data.tags), bidirectional=True, num_layers=2, device=device, dropout=0.5).to(device)
    optimizer = Adam(model.parameters(), lr=0.01)
    train_crf(model, 10, optimizer, loader(data, 'train', 1000), loader(data, 'dev', 10), device=device)