本文整理匯總了Python中torch.nn.CTCLoss方法的典型用法代碼示例。如果您正苦於以下問題:Python nn.CTCLoss方法的具體用法?Python nn.CTCLoss怎麽用?Python nn.CTCLoss使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類torch.nn
的用法示例。
在下文中一共展示了nn.CTCLoss方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: __init__
# 需要導入模塊: from torch import nn [as 別名]
# 或者: from torch.nn import CTCLoss [as 別名]
def __init__(
self,
pad_id=0,
smoothing_coef=0.0,
sample_wise=False,
aux_ctc=False,
ctc_initial_coef=0.1,
ctc_blank_id=None,
eps=1e-5,
):
assert (not aux_ctc) or (ctc_blank_id is not None), "Should be a blank id if using CTC loss"
super().__init__()
self.pad_id = pad_id
self.smoothing_coef = smoothing_coef
self.sample_wise = sample_wise
self.aux_ctc = aux_ctc
self.ctc_coef = ctc_initial_coef
self.eps = eps
if aux_ctc:
self.ctc = nn.CTCLoss(blank=ctc_blank_id, reduction='none', zero_infinity=True)
self.ctc = self.ctc.to(self._device)
示例2: __init__
# 需要導入模塊: from torch import nn [as 別名]
# 或者: from torch.nn import CTCLoss [as 別名]
def __init__(self, **kwargs):
self._blank = kwargs['num_classes'] - 1
self._criterion = nn.CTCLoss(blank=self._blank, reduction='none')
示例3: build_output
# 需要導入模塊: from torch import nn [as 別名]
# 或者: from torch.nn import CTCLoss [as 別名]
def build_output(self, input: Tuple[int, int, int, int], block: str) -> Union[Tuple[None, None, None], Tuple[Tuple[int, int, int, int], str, Callable]]:
"""
Builds an output layer.
"""
pattern = re.compile(r'(O)(?P<name>{\w+})?(?P<dim>2|1|0)(?P<type>l|s|c)(?P<aug>a)?(?P<out>\d+)')
m = pattern.match(block)
if not m:
return None, None, None
dim = int(m.group('dim'))
nl = m.group('type')
outdim = int(m.group('out'))
if dim == 0:
raise ValueError('categorical output not supported, yet.')
if nl == 'c' and dim == 2:
raise ValueError('CTC not supported for heatmap output')
if nl in ['l', 's'] and int(m.group('out')) >= 1:
self.criterion = nn.BCELoss()
elif nl == 'c':
self.criterion = nn.CTCLoss(reduction='sum', zero_infinity=True)
else:
raise ValueError('unsupported output specification')
# heatmap output
if dim == 2:
act = 's' if nl == 'l' else 'm'
fn = layers.ActConv2D(input[1], outdim, (1, 1), (1, 1), act)
logger.debug('{}\t\tconv\tkernel 1 x 1 filters {} stride 1 activation {}'.format(self.idx+1, outdim, nl))
return fn.get_shape(input), self.get_layer_name(m.group('type'), m.group('name')), fn
else:
aug = True if m.group('aug') else False
lin = layers.LinSoftmax(input[1], int(m.group('out')), aug)
logger.debug('{}\t\tlinear\taugmented {} out {}'.format(self.idx+1, aug, m.group('out')))
return lin.get_shape(input), self.get_layer_name(m.group(1), m.group('name')), lin
示例4: __init__
# 需要導入模塊: from torch import nn [as 別名]
# 或者: from torch.nn import CTCLoss [as 別名]
def __init__(self, num_classes, zero_infinity=False):
super().__init__()
self._blank = num_classes
self._criterion = nn.CTCLoss(blank=self._blank, reduction='none', zero_infinity=zero_infinity)