Python torch._C Examples
The following are 18
code examples of torch._C().
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
torch
, or try the search function
.
Example #1
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def glu(input, dim=-1): # type: (Tensor, int) -> Tensor r""" glu(input, dim=-1) -> Tensor The gated linear unit. Computes: .. math :: H = A \times \sigma(B) where `input` is split in half along `dim` to form `A` and `B`. See `Language Modeling with Gated Convolutional Networks <https://arxiv.org/abs/1612.08083>`_. Args: input (Tensor): input tensor dim (int): dimension on which to split the input """ if input.dim() == 0: raise RuntimeError("glu does not suppport scalars because halving size must be even") return torch._C._nn.glu(input, dim)
Example #2
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def multi_margin_loss(input, target, p=1, margin=1., weight=None, size_average=None, reduce=None, reduction='mean'): # type: (Tensor, Tensor, int, float, Optional[Tensor], Optional[bool], Optional[bool], str) -> Tensor r"""multi_margin_loss(input, target, p=1, margin=1, weight=None, size_average=None, reduce=None, reduction='mean') -> Tensor See :class:`~torch.nn.MultiMarginLoss` for details. """ if size_average is not None or reduce is not None: reduction_enum = _Reduction.legacy_get_enum(size_average, reduce) else: reduction_enum = _Reduction.get_enum(reduction) if p != 1 and p != 2: raise ValueError('only p == 1 and p == 2 supported') if weight is not None: weight = torch.jit._unwrap_optional(weight) if weight.dim() != 1: raise ValueError('weight must be one-dimensional') return torch._C._nn.multi_margin_loss(input, target, p, margin, weight, reduction_enum)
Example #3
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def l1_loss(input, target, size_average=None, reduce=None, reduction='mean'): # type: (Tensor, Tensor, Optional[bool], Optional[bool], str) -> Tensor r"""l1_loss(input, target, size_average=None, reduce=None, reduction='mean') -> Tensor Function that takes the mean element-wise absolute value difference. See :class:`~torch.nn.L1Loss` for details. """ if size_average is not None or reduce is not None: reduction = _Reduction.legacy_get_string(size_average, reduce) if target.requires_grad: ret = torch.abs(input - target) if reduction != 'none': ret = torch.mean(ret) if reduction == 'mean' else torch.sum(ret) else: expanded_input, expanded_target = torch.broadcast_tensors(input, target) ret = torch._C._nn.l1_loss(expanded_input, expanded_target, _Reduction.get_enum(reduction)) return ret
Example #4
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def smooth_l1_loss(input, target, size_average=None, reduce=None, reduction='mean'): # type: (Tensor, Tensor, Optional[bool], Optional[bool], str) -> Tensor r"""Function that uses a squared term if the absolute element-wise error falls below 1 and an L1 term otherwise. See :class:`~torch.nn.SmoothL1Loss` for details. """ if size_average is not None or reduce is not None: reduction = _Reduction.legacy_get_string(size_average, reduce) if target.requires_grad: ret = _smooth_l1_loss(input, target) if reduction != 'none': ret = torch.mean(ret) if reduction == 'mean' else torch.sum(ret) else: expanded_input, expanded_target = torch.broadcast_tensors(input, target) ret = torch._C._nn.smooth_l1_loss(expanded_input, expanded_target, _Reduction.get_enum(reduction)) return ret
Example #5
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def adaptive_avg_pool3d(input, output_size): # type: (Tensor, BroadcastingList3[int]) -> Tensor r""" Applies a 3D adaptive average pooling over an input signal composed of several input planes. See :class:`~torch.nn.AdaptiveAvgPool3d` for details and output shape. Args: output_size: the target output size (single integer or triple-integer tuple) """ _output_size = _list_with_default(output_size, input.size()) return torch._C._nn.adaptive_avg_pool3d(input, _output_size) # Activation functions
Example #6
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def max_unpool2d(input, indices, kernel_size, stride=None, padding=0, output_size=None): # type: (Tensor, Tensor, BroadcastingList2[int], Optional[BroadcastingList2[int]], BroadcastingList2[int], Optional[BroadcastingList2[int]]) -> Tensor # noqa r"""Computes a partial inverse of :class:`MaxPool2d`. See :class:`~torch.nn.MaxUnpool2d` for details. """ kernel_size = _pair(kernel_size) if stride is not None: _stride = _pair(torch.jit._unwrap_optional(stride)) else: _stride = kernel_size padding = _pair(padding) output_size = _unpool_output_size(input, kernel_size, _stride, padding, output_size) return torch._C._nn.max_unpool2d(input, indices, output_size)
Example #7
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 6 votes |
def max_unpool1d(input, indices, kernel_size, stride=None, padding=0, output_size=None): # type: (Tensor, Tensor, BroadcastingList1[int], Optional[BroadcastingList1[int]], BroadcastingList1[int], Optional[BroadcastingList1[int]]) -> Tensor # noqa r"""Computes a partial inverse of :class:`MaxPool1d`. See :class:`~torch.nn.MaxUnpool1d` for details. """ kernel_size = _single(kernel_size) if stride is not None: _stride = _single(torch.jit._unwrap_optional(stride)) else: _stride = kernel_size padding = _single(padding) output_size = _unpool_output_size(input, kernel_size, _stride, padding, output_size) return torch._C._nn.max_unpool2d(input.unsqueeze(3), indices.unsqueeze(3), output_size + [1]).squeeze(3)
Example #8
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def adaptive_max_pool2d_with_indices(input, output_size, return_indices=False): # type: (Tensor, BroadcastingList1[int], bool) -> Tuple[Tensor, Tensor] r"""Applies a 2D adaptive max pooling over an input signal composed of several input planes. See :class:`~torch.nn.AdaptiveMaxPool2d` for details and output shape. Args: output_size: the target output size (single integer or double-integer tuple) return_indices: whether to return pooling indices. Default: ``False`` """ output_size = _list_with_default(output_size, input.size()) return torch._C._nn.adaptive_max_pool2d(input, output_size)
Example #9
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def adaptive_max_pool3d_with_indices(input, output_size, return_indices=False): # type: (Tensor, BroadcastingList1[int], bool) -> Tuple[Tensor, Tensor] r"""Applies a 3D adaptive max pooling over an input signal composed of several input planes. See :class:`~torch.nn.AdaptiveMaxPool3d` for details and output shape. Args: output_size: the target output size (single integer or triple-integer tuple) return_indices: whether to return pooling indices. Default: ``False`` """ output_size = _list_with_default(output_size, input.size()) return torch._C._nn.adaptive_max_pool3d(input, output_size)
Example #10
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def adaptive_avg_pool2d(input, output_size): # type: (Tensor, BroadcastingList2[int]) -> Tensor r""" Applies a 2D adaptive average pooling over an input signal composed of several input planes. See :class:`~torch.nn.AdaptiveAvgPool2d` for details and output shape. Args: output_size: the target output size (single integer or double-integer tuple) """ _output_size = _list_with_default(output_size, input.size()) return torch._C._nn.adaptive_avg_pool2d(input, _output_size)
Example #11
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def elu(input, alpha=1., inplace=False): # type: (Tensor, float, bool) -> Tensor r"""Applies element-wise, :math:`\text{ELU}(x) = \max(0,x) + \min(0, \alpha * (\exp(x) - 1))`. See :class:`~torch.nn.ELU` for more details. """ if inplace: result = torch._C._nn.elu_(input, alpha) else: result = torch._C._nn.elu(input, alpha) return result
Example #12
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def leaky_relu(input, negative_slope=0.01, inplace=False): # type: (Tensor, float, bool) -> Tensor r""" leaky_relu(input, negative_slope=0.01, inplace=False) -> Tensor Applies element-wise, :math:`\text{LeakyReLU}(x) = \max(0, x) + \text{negative\_slope} * \min(0, x)` See :class:`~torch.nn.LeakyReLU` for more details. """ if inplace: result = torch._C._nn.leaky_relu_(input, negative_slope) else: result = torch._C._nn.leaky_relu(input, negative_slope) return result
Example #13
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def max_pool3d_with_indices(input, kernel_size, stride=None, padding=0, dilation=1, ceil_mode=False, return_indices=False): # type: (Tensor, BroadcastingList3[int], Optional[BroadcastingList3[int]], BroadcastingList3[int], BroadcastingList3[int], bool, bool) -> Tuple[Tensor, Tensor] # noqa r"""Applies a 3D max pooling over an input signal composed of several input planes. See :class:`~torch.nn.MaxPool3d` for details. """ if stride is None: _stride = torch.jit.annotate(List[int], []) else: _stride = torch.jit._unwrap_optional(stride) return torch._C._nn.max_pool3d_with_indices( input, kernel_size, _stride, padding, dilation, ceil_mode)
Example #14
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def multilabel_margin_loss(input, target, size_average=None, reduce=None, reduction='mean'): # type: (Tensor, Tensor, Optional[bool], Optional[bool], str) -> Tensor r"""multilabel_margin_loss(input, target, size_average=None, reduce=None, reduction='mean') -> Tensor See :class:`~torch.nn.MultiLabelMarginLoss` for details. """ if size_average is not None or reduce is not None: reduction_enum = _Reduction.legacy_get_enum(size_average, reduce) else: reduction_enum = _Reduction.get_enum(reduction) return torch._C._nn.multilabel_margin_loss(input, target, reduction_enum)
Example #15
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def soft_margin_loss(input, target, size_average=None, reduce=None, reduction='mean'): # type: (Tensor, Tensor, Optional[bool], Optional[bool], str) -> Tensor r"""soft_margin_loss(input, target, size_average=None, reduce=None, reduction='mean') -> Tensor See :class:`~torch.nn.SoftMarginLoss` for details. """ if size_average is not None or reduce is not None: reduction_enum = _Reduction.legacy_get_enum(size_average, reduce) else: reduction_enum = _Reduction.get_enum(reduction) return torch._C._nn.soft_margin_loss(input, target, reduction_enum)
Example #16
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 5 votes |
def max_pool2d_with_indices(input, kernel_size, stride=None, padding=0, dilation=1, ceil_mode=False, return_indices=False): # type: (Tensor, BroadcastingList2[int], Optional[BroadcastingList2[int]], BroadcastingList2[int], BroadcastingList2[int], bool, bool) -> Tuple[Tensor, Tensor] # noqa r"""Applies a 2D max pooling over an input signal composed of several input planes. See :class:`~torch.nn.MaxPool2d` for details. """ if stride is None: _stride = torch.jit.annotate(List[int], []) else: _stride = torch.jit._unwrap_optional(stride) return torch._C._nn.max_pool2d_with_indices(input, kernel_size, _stride, padding, dilation, ceil_mode)
Example #17
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 4 votes |
def fractional_max_pool2d_with_indices(input, kernel_size, output_size=None, output_ratio=None, return_indices=False, _random_samples=None): # type: (Tensor, BroadcastingList2[int], Optional[BroadcastingList2[int]], Optional[BroadcastingList2[float]], bool, Optional[Tensor]) -> Tuple[Tensor, Tensor] # noqa r"""Applies 2D fractional max pooling over an input signal composed of several input planes. Fractional MaxPooling is described in detail in the paper `Fractional MaxPooling`_ by Ben Graham The max-pooling operation is applied in :math:`kH \times kW` regions by a stochastic step size determined by the target output size. The number of output features is equal to the number of input planes. Args: kernel_size: the size of the window to take a max over. Can be a single number :math:`k` (for a square kernel of :math:`k \times k`) or a tuple :math:`(kH \times kW)` output_size: the target output size of the image of the form :math:`oH \times oW`. Can be a tuple `(oH, oW)` or a single number :math:`oH` for a square image :math:`oH \times oH` output_ratio: If one wants to have an output size as a ratio of the input size, this option can be given. This has to be a number or tuple in the range (0, 1) return_indices: if ``True``, will return the indices along with the outputs. Useful to pass to :func:`~torch.nn.functional.max_unpool2d`. Examples:: >>> input = torch.randn(20, 16, 50, 32) >>> # pool of square window of size=3, and target output size 13x12 >>> F.fractional_max_pool2d(input, 3, output_size=(13, 12)) >>> # pool of square window and target output size being half of input image size >>> F.fractional_max_pool2d(input, 3, output_ratio=(0.5, 0.5)) .. _Fractional MaxPooling: http://arxiv.org/abs/1412.6071 """ if output_size is None and output_ratio is None: raise ValueError("fractional_max_pool2d requires specifying either " "an output_size or an output_ratio") if output_size is None: _output_ratio = _pair(torch.jit._unwrap_optional(output_ratio)) _output_size = [int(input.size(2) * _output_ratio[0]), int(input.size(3) * _output_ratio[1])] else: _output_size = torch.jit._unwrap_optional(output_size) if _random_samples is None: _random_samples = torch.rand(input.size(0), input.size(1), 2, dtype=input.dtype, device=input.device) else: _random_samples = torch.jit._unwrap_optional(_random_samples) return torch._C._nn.fractional_max_pool2d(input, kernel_size, _output_size, _random_samples)
Example #18
Source File: functional.py From SlowFast-Network-pytorch with MIT License | 4 votes |
def binary_cross_entropy(input, target, weight=None, size_average=None, reduce=None, reduction='mean'): # type: (Tensor, Tensor, Optional[Tensor], Optional[bool], Optional[bool], str) -> Tensor r"""Function that measures the Binary Cross Entropy between the target and the output. See :class:`~torch.nn.BCELoss` for details. Args: input: Tensor of arbitrary shape target: Tensor of the same shape as input weight (Tensor, optional): a manual rescaling weight if provided it's repeated to match input tensor shape size_average (bool, optional): Deprecated (see :attr:`reduction`). By default, the losses are averaged over each loss element in the batch. Note that for some losses, there multiple elements per sample. If the field :attr:`size_average` is set to ``False``, the losses are instead summed for each minibatch. Ignored when reduce is ``False``. Default: ``True`` reduce (bool, optional): Deprecated (see :attr:`reduction`). By default, the losses are averaged or summed over observations for each minibatch depending on :attr:`size_average`. When :attr:`reduce` is ``False``, returns a loss per batch element instead and ignores :attr:`size_average`. Default: ``True`` reduction (string, optional): Specifies the reduction to apply to the output: 'none' | 'mean' | 'sum'. 'none': no reduction will be applied, 'mean': the sum of the output will be divided by the number of elements in the output, 'sum': the output will be summed. Note: :attr:`size_average` and :attr:`reduce` are in the process of being deprecated, and in the meantime, specifying either of those two args will override :attr:`reduction`. Default: 'mean' Examples:: >>> input = torch.randn((3, 2), requires_grad=True) >>> target = torch.rand((3, 2), requires_grad=False) >>> loss = F.binary_cross_entropy(F.sigmoid(input), target) >>> loss.backward() """ if size_average is not None or reduce is not None: reduction_enum = _Reduction.legacy_get_enum(size_average, reduce) else: reduction_enum = _Reduction.get_enum(reduction) if not (target.size() == input.size()): warnings.warn("Using a target size ({}) that is different to the input size ({}) is deprecated. " "Please ensure they have the same size.".format(target.size(), input.size())) if input.numel() != target.numel(): raise ValueError("Target and input must have the same number of elements. target nelement ({}) " "!= input nelement ({})".format(target.numel(), input.numel())) if weight is not None: weight = torch.jit._unwrap_optional(weight) new_size = _infer_size(target.size(), weight.size()) weight = weight.expand(new_size) return torch._C._nn.binary_cross_entropy( input, target, weight, reduction_enum)