Python model.cuda() Examples
The following are 14
code examples of model.cuda().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
model
, or try the search function
.
Example #1
Source File: train.py From yolo2-pytorch with GNU Lesser General Public License v3.0 | 6 votes |
def get_loader(self): paths = [os.path.join(self.cache_dir, phase + '.pkl') for phase in self.config.get('train', 'phase').split()] dataset = utils.data.Dataset( utils.data.load_pickles(paths), transform=transform.augmentation.get_transform(self.config, self.config.get('transform', 'augmentation').split()), one_hot=None if self.config.getboolean('train', 'cross_entropy') else len(self.category), shuffle=self.config.getboolean('data', 'shuffle'), dir=os.path.join(self.model_dir, 'exception'), ) logging.info('num_examples=%d' % len(dataset)) try: workers = self.config.getint('data', 'workers') if torch.cuda.is_available(): workers = workers * torch.cuda.device_count() except configparser.NoOptionError: workers = multiprocessing.cpu_count() collate_fn = utils.data.Collate( transform.parse_transform(self.config, self.config.get('transform', 'resize_train')), utils.train.load_sizes(self.config), maintain=self.config.getint('data', 'maintain'), transform_image=transform.get_transform(self.config, self.config.get('transform', 'image_train').split()), transform_tensor=transform.get_transform(self.config, self.config.get('transform', 'tensor').split()), dir=os.path.join(self.model_dir, 'exception'), ) return torch.utils.data.DataLoader(dataset, batch_size=self.args.batch_size * torch.cuda.device_count() if torch.cuda.is_available() else self.args.batch_size, shuffle=True, num_workers=workers, collate_fn=collate_fn, pin_memory=torch.cuda.is_available())
Example #2
Source File: main.py From LM_syneval with MIT License | 6 votes |
def batchify(data, bsz): # Work out how cleanly we can divide the dataset into bsz parts. if isinstance(data, tuple): nbatch = data[0].size(0) // bsz # Trim off any extra elements that wouldn't cleanly fit (remainders). tag_data = data[1].narrow(0, 0, nbatch * bsz) data = data[0].narrow(0, 0, nbatch * bsz) # Evenly divide the data across the bsz batches. tag_data = tag_data.view(bsz, -1).t().contiguous() else: nbatch = data.size(0) // bsz # Trim off any extra elements that wouldn't cleanly fit (remainders). data = data.narrow(0, 0, nbatch * bsz) # Evenly divide the data across the bsz batches. data = data.view(bsz, -1).t().contiguous() # Turning the data over to CUDA at this point may lead to more OOM errors #if args.cuda: # data = data.cuda() if isinstance(data,tuple): return data, tag_data return data
Example #3
Source File: main.py From LM_syneval with MIT License | 6 votes |
def evaluate(lm_data_source, ccg_data_source): # Turn on evaluation mode which disables dropout. model.eval() total_loss = 0 ntokens = len(corpus.dictionary) if (not args.single) and (torch.cuda.device_count() > 1): #"module" is necessary when using DataParallel hidden = model.module.init_hidden(eval_batch_size) else: hidden = model.init_hidden(eval_batch_size) for i in range(0, lm_data_source.size(0) + ccg_data_source.size(0) - 1, args.bptt): # TAG if i > lm_data_source.size(0): data, targets = get_batch(ccg_data_source, i - lm_data_source.size(0), evaluation=True) # LM else: data, targets = get_batch(lm_data_source, i, evaluation=True) output, hidden = model(data, hidden) output_flat = output.view(-1, ntokens) curr_loss = len(data) * criterion(output_flat, targets).data total_loss += curr_loss hidden = repackage_hidden(hidden) if len(ccg_data_source) == 0: return total_loss / len(lm_data_source) return total_loss[0] / (len(lm_data_source)+len(ccg_data_source))
Example #4
Source File: train.py From yolo2-pytorch with GNU Lesser General Public License v3.0 | 5 votes |
def ensure_model(model): if torch.cuda.is_available(): model.cuda() if torch.cuda.device_count() > 1: logging.info('%d GPUs are used' % torch.cuda.device_count()) model = nn.DataParallel(model).cuda() return model
Example #5
Source File: train.py From yolo2-pytorch with GNU Lesser General Public License v3.0 | 5 votes |
def eval(self, **kwargs): logging.info('evaluating') if torch.cuda.is_available(): self.inference.cpu() try: e = _eval.Eval(self.args, self.config) cls_ap = e() self.backup_best(cls_ap, e.path) except: traceback.print_exc() if torch.cuda.is_available(): self.inference.cuda()
Example #6
Source File: main.py From vmf_vae_nlp with MIT License | 5 votes |
def batchify(data, bsz): # Work out how cleanly we can divide the dataset into bsz parts. nbatch = data.size(0) // bsz # Trim off any extra elements that wouldn't cleanly fit (remainders). data = data.narrow(0, 0, nbatch * bsz) # Evenly divide the data across the bsz batches. data = data.view(bsz, -1).t().contiguous() if args.cuda: data = data.cuda() return data
Example #7
Source File: main.py From YellowFin_Pytorch with Apache License 2.0 | 5 votes |
def batchify(data, bsz): # Work out how cleanly we can divide the dataset into bsz parts. nbatch = data.size(0) // bsz # Trim off any extra elements that wouldn't cleanly fit (remainders). data = data.narrow(0, 0, nbatch * bsz) # Evenly divide the data across the bsz batches. data = data.view(bsz, -1).t().contiguous() if args.cuda: data = data.cuda() return data
Example #8
Source File: train.py From l2w with GNU General Public License v3.0 | 5 votes |
def evaluate(split): # Turn on evaluation mode which disables dropout. model.eval() total_loss, nbatches = 0, 0 ntokens = len(corpus.dictionary.idx2word) hidden = model.init_hidden(args.eval_batch_size) for source, target in corpus.iter(split, args.eval_batch_size, args.bptt, use_cuda=args.cuda): model.softmax.set_target(target.data.view(-1)) output, hidden = model(source, hidden) total_loss += criterion(output, target.view(-1)).data.sum() hidden = repackage_hidden(hidden) nbatches += 1 return total_loss / nbatches
Example #9
Source File: main.py From word-language-model with BSD 3-Clause "New" or "Revised" License | 5 votes |
def batchify(data, bsz): # Work out how cleanly we can divide the dataset into bsz parts. nbatch = data.size(0) // bsz # Trim off any extra elements that wouldn't cleanly fit (remainders). data = data.narrow(0, 0, nbatch * bsz) # Evenly divide the data across the bsz batches. data = data.view(bsz, -1).t().contiguous() if args.cuda: data = data.cuda() return data
Example #10
Source File: main.py From LM_syneval with MIT License | 5 votes |
def test_get_batch(source, evaluation=False): if isinstance(source, tuple): seq_len = len(source[0]) - 1 data = Variable(source[0][:seq_len], volatile=evaluation) target = Variable(source[1][:seq_len], volatile=evaluation) else: seq_len = len(source) - 1 data = Variable(source[:seq_len], volatile=evaluation) target = Variable(source[1:1+seq_len].view(-1)) # This is where data should be CUDA-fied to lessen OOM errors if args.cuda: return data.cuda(), target.cuda() else: return data, target
Example #11
Source File: main.py From LM_syneval with MIT License | 5 votes |
def get_batch(source, i, evaluation=False): if isinstance(source, tuple): seq_len = min(args.bptt, len(source[0]) - 1 - i) data = Variable(source[0][i:i+seq_len], volatile=evaluation) target = Variable(source[1][i:i+seq_len].view(-1)) else: seq_len = min(args.bptt, len(source) - 1 - i) data = Variable(source[i:i+seq_len], volatile=evaluation) target = Variable(source[i+1:i+1+seq_len].view(-1)) #This is where data should be CUDA-fied to lessen OOM errors if args.cuda: return data.cuda(), target.cuda() else: return data, target
Example #12
Source File: main.py From dni-pytorch with MIT License | 5 votes |
def batchify(data, bsz): # Work out how cleanly we can divide the dataset into bsz parts. nbatch = data.size(0) // bsz # Trim off any extra elements that wouldn't cleanly fit (remainders). data = data.narrow(0, 0, nbatch * bsz) # Evenly divide the data across the bsz batches. data = data.view(bsz, -1).t().contiguous() if args.cuda: data = data.cuda() return data
Example #13
Source File: train.py From l2w with GNU General Public License v3.0 | 4 votes |
def train(): global lr, best_val_loss # Turn on training mode which enables dropout. model.train() total_loss, nbatches = 0, 0 start_time = time.time() ntokens = len(corpus.dictionary.idx2word) hidden = model.init_hidden(args.batch_size) for b, batch in enumerate(corpus.iter('train', args.batch_size, args.bptt, use_cuda=args.cuda)): model.train() source, target = batch # Starting each batch, we detach the hidden state from how it was previously produced. # If we didn't, the model would try backpropagating all the way to start of the dataset. hidden = repackage_hidden(hidden) model.zero_grad() model.softmax.set_target(target.data.view(-1)) output, hidden = model(source, hidden) loss = criterion(output, target.view(-1)) loss.backward() # `clip_grad_norm` helps prevent the exploding gradient problem in RNNs. torch.nn.utils.clip_grad_norm(model.parameters(), args.clip) for p in model.parameters(): if p.grad is not None: p.data.add_(-lr, p.grad.data) total_loss += loss.data.cpu() if b % args.log_interval == 0 and b > 0: cur_loss = total_loss[0] / args.log_interval elapsed = time.time() - start_time val_loss = evaluate('valid') print('| epoch {:3d} | batch {:5d} | lr {:02.5f} | ms/batch {:5.2f} | ' 'loss {:5.2f} | ppl {:8.2f} | valid loss {:5.2f} | valid ppl {:8.2f}'.format( epoch, b, lr, elapsed * 1000 / args.log_interval, cur_loss, math.exp(cur_loss), val_loss, math.exp(val_loss))) # Save the model if the validation loss is the best we've seen so far. if not best_val_loss or val_loss < best_val_loss: with open(args.save, 'wb') as f: torch.save(model, f) best_val_loss = val_loss else: # Anneal the learning rate if no improvement has been seen in the validation dataset. lr *= args.ar total_loss = 0 start_time = time.time() # At any point you can hit Ctrl + C to break out of training early.
Example #14
Source File: main.py From LM_syneval with MIT License | 4 votes |
def test_evaluate(test_lm_sentences, test_ccg_sentences, lm_data_source, ccg_data_source): # Turn on evaluation mode which disables dropout. model.eval() total_loss = 0. ntokens = len(corpus.dictionary) if args.words: print('word sentid sentpos wlen surp entropy')#,end='') if args.guess: for i in range(args.guessn): print(' guess'+str(i))#,end='') if args.guessscores: print(' gscore'+str(i))#,end='') sys.stdout.write('\n') bar = Bar('Processing', max=len(lm_data_source)+len(ccg_data_source)) for i in range(len(lm_data_source)+len(ccg_data_source)): if i >= len(lm_data_source): sent_ids = ccg_data_source[i-len(lm_data_source)] sent = test_ccg_sentences[i-len(lm_data_source)] else: sent_ids = lm_data_source[i] sent = test_lm_sentences[i] if args.cuda: sent_ids = sent_ids.cuda() if (not args.single) and (torch.cuda.device_count() > 1): # "module" is necessary when using DataParallel hidden = model.module.init_hidden(1) # number of parallel sentences being processed else: hidden = model.init_hidden(1) # number of parallel sentences being processed data, targets = test_get_batch(sent_ids, evaluation=True) data=data.unsqueeze(1) # only needed if there is just a single sentence being processed output, hidden = model(data, hidden) output_flat = output.view(-1, ntokens) curr_loss = criterion(output_flat, targets).item() #curr_loss = len(data) * criterion(output_flat, targets).data # needed if there is more than a single sentence being processed total_loss += curr_loss if args.words: # output word-level complexity metrics if i >= len(lm_data_source): get_complexity_apply(output_flat,targets,i-len(lm_data_source),tags=True) else: get_complexity_apply(output_flat,targets,i) else: # output sentence-level loss print(str(sent)+":"+str(curr_loss[0])) hidden = repackage_hidden(hidden) bar.next() bar.finish() return total_loss / (len(lm_data_source)+len(ccg_data_source))