本文整理匯總了Python中torch.IntTensor方法的典型用法代碼示例。如果您正苦於以下問題:Python torch.IntTensor方法的具體用法?Python torch.IntTensor怎麽用?Python torch.IntTensor使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類torch
的用法示例。
在下文中一共展示了torch.IntTensor方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: ctc_collate
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def ctc_collate(batch):
'''
Stack samples into CTC style inputs.
Modified based on default_collate() in PyTorch.
By Yuan-Hang Zhang.
'''
xs, ys, lens, indices = zip(*batch)
max_len = max(lens)
x = default_collate(xs)
x.narrow(2, 0, max_len)
y = []
for sub in ys: y += sub
y = torch.IntTensor(y)
lengths = torch.IntTensor(lens)
y_lengths = torch.IntTensor([len(label) for label in ys])
ids = default_collate(indices)
return x, y, lengths, y_lengths, ids
示例2: forward
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def forward(self, features, rois):
batch_size, num_channels, data_height, data_width = features.size()
num_rois = rois.size()[0]
output = torch.zeros(num_rois, num_channels, self.pooled_height, self.pooled_width)
argmax = torch.IntTensor(num_rois, num_channels, self.pooled_height, self.pooled_width).zero_()
if not features.is_cuda:
_features = features.permute(0, 2, 3, 1)
roi_pooling.roi_pooling_forward(self.pooled_height, self.pooled_width, self.spatial_scale,
_features, rois, output)
# output = output.cuda()
else:
output = output.cuda()
argmax = argmax.cuda()
roi_pooling.roi_pooling_forward_cuda(self.pooled_height, self.pooled_width, self.spatial_scale,
features, rois, output, argmax)
self.output = output
self.argmax = argmax
self.rois = rois
self.feature_size = features.size()
return output
開發者ID:Sunarker,項目名稱:Collaborative-Learning-for-Weakly-Supervised-Object-Detection,代碼行數:24,代碼來源:roi_pool.py
示例3: tensorize
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def tensorize(mol_batch, vocab, avocab):
mol_batch = [MolGraph(x) for x in mol_batch]
tree_tensors, tree_batchG = MolGraph.tensorize_graph([x.mol_tree for x in mol_batch], vocab)
graph_tensors, graph_batchG = MolGraph.tensorize_graph([x.mol_graph for x in mol_batch], avocab)
tree_scope = tree_tensors[-1]
graph_scope = graph_tensors[-1]
max_cls_size = max( [len(c) for x in mol_batch for c in x.clusters] )
cgraph = torch.zeros(len(tree_batchG) + 1, max_cls_size).int()
for v,attr in tree_batchG.nodes(data=True):
bid = attr['batch_id']
offset = graph_scope[bid][0]
tree_batchG.nodes[v]['inter_label'] = inter_label = [(x + offset, y) for x,y in attr['inter_label']]
tree_batchG.nodes[v]['cluster'] = cls = [x + offset for x in attr['cluster']]
tree_batchG.nodes[v]['assm_cands'] = [add(x, offset) for x in attr['assm_cands']]
cgraph[v, :len(cls)] = torch.IntTensor(cls)
all_orders = []
for i,hmol in enumerate(mol_batch):
offset = tree_scope[i][0]
order = [(x + offset, y + offset, z) for x,y,z in hmol.order[:-1]] + [(hmol.order[-1][0] + offset, None, 0)]
all_orders.append(order)
tree_tensors = tree_tensors[:4] + (cgraph, tree_scope)
return (tree_batchG, graph_batchG), (tree_tensors, graph_tensors), all_orders
示例4: predict_this_box
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def predict_this_box(image, model, alphabet):
converter = utils.strLabelConverter(alphabet)
transformer = dataset.resizeNormalize((200, 32))
image = transformer(image)
if torch.cuda.is_available():
image = image.cuda()
image = image.view(1, *image.size())
image = Variable(image)
model.eval()
preds = model(image)
_, preds = preds.max(2)
preds = preds.transpose(1, 0).contiguous().view(-1)
preds_size = Variable(torch.IntTensor([preds.size(0)]))
raw_pred = converter.decode(preds.data, preds_size.data, raw=True)
sim_pred = converter.decode(preds.data, preds_size.data, raw=False)
print('%-30s => %-30s' % (raw_pred, sim_pred))
return sim_pred
示例5: encode
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def encode(self, text):
"""Support batch or single str.
Args:
text (str or list of str): texts to convert.
Returns:
torch.IntTensor [length_0 + length_1 + ... length_{n - 1}]: encoded texts.
torch.IntTensor [n]: length of each text.
"""
if isinstance(text, str):
text = [
self.dict[char.lower() if self._ignore_case else char]
for char in text
]
length = [len(text)]
elif isinstance(text, collections.Iterable):
length = [len(s) for s in text]
text = ''.join(text)
text, _ = self.encode(text)
return (torch.IntTensor(text), torch.IntTensor(length))
示例6: trainBatch
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def trainBatch(net, criterion, optimizer):
data = train_iter.next()
cpu_images, cpu_texts = data
batch_size = cpu_images.size(0)
utils.loadData(image, cpu_images)
t, l = converter.encode(cpu_texts)
utils.loadData(text, t)
utils.loadData(length, l)
preds = crnn(image)
preds_size = Variable(torch.IntTensor([preds.size(0)] * batch_size))
cost = criterion(preds, text, preds_size, length) / batch_size
crnn.zero_grad()
cost.backward()
optimizer.step()
return cost
示例7: cast_type
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def cast_type(var, dtype, use_gpu):
if use_gpu:
if dtype == INT:
var = var.type(th.cuda.IntTensor)
elif dtype == LONG:
var = var.type(th.cuda.LongTensor)
elif dtype == FLOAT:
var = var.type(th.cuda.FloatTensor)
else:
raise ValueError('Unknown dtype')
else:
if dtype == INT:
var = var.type(th.IntTensor)
elif dtype == LONG:
var = var.type(th.LongTensor)
elif dtype == FLOAT:
var = var.type(th.FloatTensor)
else:
raise ValueError('Unknown dtype')
return var
示例8: __init__
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def __init__(self, cfgfile, use_cuda=True):
super(Darknet, self).__init__()
self.use_cuda = use_cuda
self.blocks = parse_cfg(cfgfile)
self.models = self.create_network(self.blocks) # merge conv, bn,leaky
self.loss_layers = self.getLossLayers()
#self.width = int(self.blocks[0]['width'])
#self.height = int(self.blocks[0]['height'])
if len(self.loss_layers) > 0:
last = len(self.loss_layers)-1
self.anchors = self.loss_layers[last].anchors
self.num_anchors = self.loss_layers[last].num_anchors
self.anchor_step = self.loss_layers[last].anchor_step
self.num_classes = self.loss_layers[last].num_classes
# default format : major=0, minor=1
self.header = torch.IntTensor([0,1,0,0])
self.seen = 0
示例9: tokenize
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def tokenize(line, dict, tokenize=tokenize_line, add_if_not_exist=True,
consumer=None, append_eos=True, reverse_order=False):
words = tokenize(line)
if reverse_order:
words = list(reversed(words))
nwords = len(words)
ids = torch.IntTensor(nwords + 1 if append_eos else nwords)
for i, word in enumerate(words):
if add_if_not_exist:
idx = dict.add_symbol(word)
else:
idx = dict.index(word)
if consumer is not None:
consumer(word, idx)
ids[i] = idx
if append_eos:
ids[nwords] = dict.eos_index
return ids
示例10: add
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def add(self, ref, pred):
if not isinstance(ref, torch.IntTensor):
raise TypeError('ref must be a torch.IntTensor (got {})'
.format(type(ref)))
if not isinstance(pred, torch.IntTensor):
raise TypeError('pred must be a torch.IntTensor(got {})'
.format(type(pred)))
# don't match unknown words
rref = ref.clone()
assert not rref.lt(0).any()
rref[rref.eq(self.unk)] = -999
rref = rref.contiguous().view(-1)
pred = pred.contiguous().view(-1)
C.bleu_add(
ctypes.byref(self.stat),
ctypes.c_size_t(rref.size(0)),
ctypes.c_void_p(rref.data_ptr()),
ctypes.c_size_t(pred.size(0)),
ctypes.c_void_p(pred.data_ptr()),
ctypes.c_int(self.pad),
ctypes.c_int(self.eos))
示例11: pytorch_one_hot
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def pytorch_one_hot(index_tensor, depth=0):
"""
One-hot utility function for PyTorch.
Args:
index_tensor (torch.Tensor): The input to be one-hot.
depth (int): The max. number to be one-hot encoded (size of last rank).
Returns:
torch.Tensor: The one-hot encoded equivalent of the input array.
"""
if get_backend() == "pytorch":
# Do converts.
if isinstance(index_tensor, torch.FloatTensor):
index_tensor = index_tensor.long()
if isinstance(index_tensor, torch.IntTensor):
index_tensor = index_tensor.long()
out = torch.zeros(index_tensor.size() + torch.Size([depth]))
dim = len(index_tensor.size())
index = index_tensor.unsqueeze(-1)
return out.scatter_(dim, index, 1)
示例12: decode
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def decode(self, emissions):
B, T, N = emissions.size()
hypos = []
if self.asg_transitions is None:
transitions = torch.FloatTensor(N, N).zero_()
else:
transitions = torch.FloatTensor(self.asg_transitions).view(N, N)
viterbi_path = torch.IntTensor(B, T)
workspace = torch.ByteTensor(CpuViterbiPath.get_workspace_size(B, T, N))
CpuViterbiPath.compute(
B,
T,
N,
get_data_ptr_as_bytes(emissions),
get_data_ptr_as_bytes(transitions),
get_data_ptr_as_bytes(viterbi_path),
get_data_ptr_as_bytes(workspace),
)
return [
[{"tokens": self.get_tokens(viterbi_path[b].tolist()), "score": 0}]
for b in range(B)
]
示例13: parse_alignment
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def parse_alignment(line):
"""
Parses a single line from the alingment file.
Args:
line (str): String containing the alignment of the format:
<src_idx_1>-<tgt_idx_1> <src_idx_2>-<tgt_idx_2> ..
<src_idx_m>-<tgt_idx_m>. All indices are 0 indexed.
Returns:
torch.IntTensor: packed alignments of shape (2 * m).
"""
alignments = line.strip().split()
parsed_alignment = torch.IntTensor(2 * len(alignments))
for idx, alignment in enumerate(alignments):
src_idx, tgt_idx = alignment.split("-")
parsed_alignment[2 * idx] = int(src_idx)
parsed_alignment[2 * idx + 1] = int(tgt_idx)
return parsed_alignment
示例14: test_masked_global_attention
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def test_masked_global_attention(self):
source_lengths = torch.IntTensor([7, 3, 5, 2])
# illegal_weights_mask = torch.ByteTensor([
# [0, 0, 0, 0, 0, 0, 0],
# [0, 0, 0, 1, 1, 1, 1],
# [0, 0, 0, 0, 0, 1, 1],
# [0, 0, 1, 1, 1, 1, 1]])
batch_size = source_lengths.size(0)
dim = 20
memory_bank = Variable(torch.randn(batch_size,
source_lengths.max(), dim))
hidden = Variable(torch.randn(batch_size, dim))
attn = onmt.modules.GlobalAttention(dim)
_, alignments = attn(hidden, memory_bank,
memory_lengths=source_lengths)
# TODO: fix for pytorch 0.3
# illegal_weights = alignments.masked_select(illegal_weights_mask)
# self.assertEqual(0.0, illegal_weights.data.sum())
示例15: forward
# 需要導入模塊: import torch [as 別名]
# 或者: from torch import IntTensor [as 別名]
def forward(self, forward_input):
audio, spect = forward_input
audio = self.start(audio)
for i in range(self.n_layers):
acts = fused_add_tanh_sigmoid_multiply(
self.in_layers[i](audio),
self.cond_layers[i](spect),
torch.IntTensor([self.n_channels]))
res_skip_acts = self.res_skip_layers[i](acts)
if i < self.n_layers - 1:
audio = res_skip_acts[:,:self.n_channels,:] + audio
skip_acts = res_skip_acts[:,self.n_channels:,:]
else:
skip_acts = res_skip_acts
if i == 0:
output = skip_acts
else:
output = skip_acts + output
return self.end(output)