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)
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() #??
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()
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)
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()
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
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)))
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))
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)