本文整理汇总了Python中data.cuda方法的典型用法代码示例。如果您正苦于以下问题:Python data.cuda方法的具体用法?Python data.cuda怎么用?Python data.cuda使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类data
的用法示例。
在下文中一共展示了data.cuda方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: singletest
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
def singletest(data,net,config,splitfun,combinefun,n_per_run,margin = 64,isfeat=False):
z, h, w = data.size(2), data.size(3), data.size(4)
print(data.size())
data = splitfun(data,config['max_stride'],margin)
data = Variable(data.cuda(async = True), volatile = True,requires_grad=False)
splitlist = range(0,args.split+1,n_per_run)
outputlist = []
featurelist = []
for i in range(len(splitlist)-1):
if isfeat:
output,feature = net(data[splitlist[i]:splitlist[i+1]])
featurelist.append(feature)
else:
output = net(data[splitlist[i]:splitlist[i+1]])
output = output.data.cpu().numpy()
outputlist.append(output)
output = np.concatenate(outputlist,0)
output = combinefun(output, z / config['stride'], h / config['stride'], w / config['stride'])
if isfeat:
feature = np.concatenate(featurelist,0).transpose([0,2,3,4,1])
feature = combinefun(feature, z / config['stride'], h / config['stride'], w / config['stride'])
return output,feature
else:
return output
示例2: singletest
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
def singletest(data, net, config, splitfun, combinefun, n_per_run, margin=64):
z, h, w = data.size(2), data.size(3), data.size(4)
print(data.size())
data = splitfun(data, config['max_stride'], margin)
data = Variable(data.cuda(async=True), volatile=True, requires_grad=False)
splitlist = range(0, args.split + 1, n_per_run)
outputlist = []
for i in range(len(splitlist) - 1):
output = net(data[splitlist[i]:splitlist[i + 1]])
output = output.data.cpu().numpy()
outputlist.append(output)
output = np.concatenate(outputlist, 0)
output = combinefun(output, z / config['stride'], h / config['stride'], w / config['stride'])
return output
示例3: train
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
def train(epoch):
model.train()
for batch_idx, (data, target) in enumerate(train_loader):
if args.cuda:
data, target = data.cuda(), target.cuda()
data, target = Variable(data), Variable(target)
optimizer.zero_grad()
output = model(data)
loss = criterion(output, target)
loss.backward()
optimizer.step()
if args.prune == 'node':
beta_penalty_op.penalize()
if args.arch == 'NIN':
dropout_update_op.update()
if batch_idx % args.log_interval == 0:
print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(
epoch, batch_idx * len(data), len(train_loader.dataset),
100. * batch_idx / len(train_loader), loss.data[0]))
return
示例4: batchify
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
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
示例5: evaluate
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
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))
示例6: batchify
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
def batchify(data, bsz, random_start_idx=False):
# 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).
if random_start_idx:
start_idx = random.randint(0, data.size(0) % bsz - 1)
else:
start_idx = 0
data = data.narrow(0, start_idx, 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
示例7: validate
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
def validate(data_loader, net, loss):
start_time = time.time()
net.eval()
metrics = []
for i, (data, target, coord) in enumerate(data_loader):
data = Variable(data.cuda(async = True), volatile = True)
target = Variable(target.cuda(async = True), volatile = True)
coord = Variable(coord.cuda(async = True), volatile = True)
output = net(data, coord)
loss_output = loss(output, target, train = False)
loss_output[0] = loss_output[0].data[0]
metrics.append(loss_output)
end_time = time.time()
metrics = np.asarray(metrics, np.float32)
print('Validation: tpr %3.2f, tnr %3.8f, total pos %d, total neg %d, time %3.2f' % (
100.0 * np.sum(metrics[:, 6]) / np.sum(metrics[:, 7]),
100.0 * np.sum(metrics[:, 8]) / np.sum(metrics[:, 9]),
np.sum(metrics[:, 7]),
np.sum(metrics[:, 9]),
end_time - start_time))
print('loss %2.4f, classify loss %2.4f, regress loss %2.4f, %2.4f, %2.4f, %2.4f' % (
np.mean(metrics[:, 0]),
np.mean(metrics[:, 1]),
np.mean(metrics[:, 2]),
np.mean(metrics[:, 3]),
np.mean(metrics[:, 4]),
np.mean(metrics[:, 5])))
print
print
示例8: batchify
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
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
示例9: batchify
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
def batchify(data, bsz, args):
# 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
示例10: batchify
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
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
#######################################################################
示例11: test
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
def test(evaluate=False):
global best_acc
model.eval()
test_loss = 0
correct = 0
for data, target in test_loader:
if args.cuda:
data, target = data.cuda(), target.cuda()
data, target = Variable(data, volatile=True), Variable(target)
output = model(data)
test_loss += criterion(output, target).data[0]
pred = output.data.max(1, keepdim=True)[1]
correct += pred.eq(target.data.view_as(pred)).cpu().sum()
acc = 100. * correct / len(test_loader.dataset)
if ((args.prune == 'node') and (not args.retrain)) or (acc > best_acc):
best_acc = acc
if not evaluate:
save_state(model, best_acc)
test_loss /= len(test_loader.dataset)
print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.2f}%)'.format(
test_loss * args.batch_size, correct, len(test_loader.dataset),
100. * correct / len(test_loader.dataset)))
print('Best Accuracy: {:.2f}%\n'.format(best_acc))
return
示例12: test_get_batch
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
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
示例13: get_batch
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
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
示例14: train
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
def train(data_loader, net, loss, epoch, optimizer, get_lr, save_freq, save_dir):
start_time = time.time()
net.train()
lr = get_lr(epoch)
for param_group in optimizer.param_groups:
param_group['lr'] = lr
metrics = []
for i, (data, target, coord) in enumerate(data_loader):
data = Variable(data.cuda(async = True))
target = Variable(target.cuda(async = True))
coord = Variable(coord.cuda(async = True))
output = net(data, coord)
loss_output = loss(output, target)
optimizer.zero_grad()
loss_output[0].backward()
optimizer.step()
loss_output[0] = loss_output[0].data[0]
metrics.append(loss_output)
if epoch % args.save_freq == 0:
state_dict = net.module.state_dict()
for key in state_dict.keys():
state_dict[key] = state_dict[key].cpu()
torch.save({
'epoch': epoch,
'save_dir': save_dir,
'state_dict': state_dict,
'args': args},
os.path.join(save_dir, '%03d.ckpt' % epoch))
end_time = time.time()
metrics = np.asarray(metrics, np.float32)
print('Epoch %03d (lr %.5f)' % (epoch, lr))
print('Train: tpr %3.2f, tnr %3.2f, total pos %d, total neg %d, time %3.2f' % (
100.0 * np.sum(metrics[:, 6]) / np.sum(metrics[:, 7]),
100.0 * np.sum(metrics[:, 8]) / np.sum(metrics[:, 9]),
np.sum(metrics[:, 7]),
np.sum(metrics[:, 9]),
end_time - start_time))
print('loss %2.4f, classify loss %2.4f, regress loss %2.4f, %2.4f, %2.4f, %2.4f' % (
np.mean(metrics[:, 0]),
np.mean(metrics[:, 1]),
np.mean(metrics[:, 2]),
np.mean(metrics[:, 3]),
np.mean(metrics[:, 4]),
np.mean(metrics[:, 5])))
print
示例15: train
# 需要导入模块: import data [as 别名]
# 或者: from data import cuda [as 别名]
def train(data_loader, net, loss, epoch, optimizer, get_lr, save_freq, save_dir):
start_time = time.time()
net.train()
lr = get_lr(epoch)
for param_group in optimizer.param_groups:
param_group['lr'] = lr
metrics = []
for i, (data, target, coord) in enumerate(data_loader):
data = Variable(data.cuda(async=True))
target = Variable(target.cuda(async=True))
coord = Variable(coord.cuda(async=True))
output = net(data, coord)
# print ("output", np.shape(output))
loss_output = loss(output, target)
optimizer.zero_grad()
loss_output[0].backward()
optimizer.step()
loss_output[0] = loss_output[0].data[0]
metrics.append(loss_output)
if epoch % args.save_freq == 0:
state_dict = net.module.state_dict()
for key in state_dict.keys():
state_dict[key] = state_dict[key].cpu()
torch.save({
'epoch': epoch,
'save_dir': save_dir,
'state_dict': state_dict,
'args': args},
os.path.join(save_dir, '%03d.ckpt' % epoch))
end_time = time.time()
metrics = np.asarray(metrics, np.float32)
print('Epoch %03d (lr %.5f)' % (epoch, lr))
print('Train: tpr %3.2f, tnr %3.2f, total pos %d, total neg %d, time %3.2f' % (
100.0 * np.sum(metrics[:, 6]) / np.sum(metrics[:, 7]),
100.0 * np.sum(metrics[:, 8]) / np.sum(metrics[:, 9]),
np.sum(metrics[:, 7]),
np.sum(metrics[:, 9]),
end_time - start_time))
print('loss %2.4f, classify loss %2.4f, regress loss %2.4f, %2.4f, %2.4f, %2.4f' % (
np.mean(metrics[:, 0]),
np.mean(metrics[:, 1]),
np.mean(metrics[:, 2]),
np.mean(metrics[:, 3]),
np.mean(metrics[:, 4]),
np.mean(metrics[:, 5])))
print