assert isinstance(arg, int) or len(arg) == 2, message.format(arg_name)
+@torch._jit_internal.weak_script
def unfold(input, kernel_size, dilation=1, padding=0, stride=1):
+ # type: (Tensor, BroadcastingList2[int], BroadcastingList2[int], BroadcastingList2[int], BroadcastingList2[int]) -> Tensor # noqa
r"""Extracts sliding local blocks from an batched input tensor.
.. warning::
assert_int_or_pair(padding, 'padding', msg)
assert_int_or_pair(stride, 'stride', msg)
- return torch._C._nn.thnn_im2col(input, _pair(kernel_size),
- _pair(dilation), _pair(padding), _pair(stride))
+ ret = torch._C._nn.thnn_im2col(input, _pair(kernel_size),
+ _pair(dilation), _pair(padding), _pair(stride))
else:
raise NotImplementedError("Input Error: Only 4D input Tensors are supported (got {}D)".format(input.dim()))
+ ret = input # TODO: remove when jit supports exception control flow
+ return ret
+@torch._jit_internal.weak_script
def fold(input, output_size, kernel_size, dilation=1, padding=0, stride=1):
+ # type: (Tensor, BroadcastingList2[int], BroadcastingList2[int], BroadcastingList2[int], BroadcastingList2[int], BroadcastingList2[int]) -> Tensor # noqa
r"""Combines an array of sliding local blocks into a large containing
tensor.
assert_int_or_pair(padding, 'padding', msg)
assert_int_or_pair(stride, 'stride', msg)
- return torch._C._nn.thnn_col2im(input, _pair(output_size), _pair(kernel_size),
- _pair(dilation), _pair(padding), _pair(stride))
+ ret = torch._C._nn.thnn_col2im(input, _pair(output_size), _pair(kernel_size),
+ _pair(dilation), _pair(padding), _pair(stride))
else:
raise NotImplementedError("Input Error: Only 3D input Tensors are supported (got {}D)".format(input.dim()))
+ ret = input # TODO: remove when jit supports exception control flow
+ return ret
# coding=utf-8
from .module import Module
from .. import functional as F
+from ..._jit_internal import weak_module, weak_script_method
+@weak_module
class Fold(Module):
r"""Combines an array of sliding local blocks into a large containing
tensor.
https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md
"""
+ __constants__ = ['output_size', 'kernel_size', 'dilation', 'padding',
+ 'stride']
def __init__(self, output_size, kernel_size, dilation=1, padding=0, stride=1):
super(Fold, self).__init__()
self.padding = padding
self.stride = stride
+ @weak_script_method
def forward(self, input):
return F.fold(input, self.output_size, self.kernel_size, self.dilation,
self.padding, self.stride)
)
+@weak_module
class Unfold(Module):
r"""Extracts sliding local blocks from a batched input tensor.
https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md
"""
+ __constants__ = ['kernel_size', 'dilation', 'padding', 'stride']
def __init__(self, kernel_size, dilation=1, padding=0, stride=1):
super(Unfold, self).__init__()
self.padding = padding
self.stride = stride
+ @weak_script_method
def forward(self, input):
return F.unfold(input, self.kernel_size, self.dilation,
self.padding, self.stride)