/usr/local/lib64/python3.6/site-packages/torch/nn/modules
NameSizeModeActions
__pycache__/-0755rm
activation.py424220644editdlrm
adaptive.py111680644editdlrm
batchnorm.py364560644editdlrm
channelshuffle.py12950644editdlrm
container.py263100644editdlrm
conv.py688560644editdlrm
distance.py29090644editdlrm
dropout.py89550644editdlrm
flatten.py53200644editdlrm
fold.py125520644editdlrm
instancenorm.py184250644editdlrm
lazy.py115420644editdlrm
linear.py103410644editdlrm
loss.py881120644editdlrm
module.py783960644editdlrm
normalization.py107500644editdlrm
padding.py194210644editdlrm
pixelshuffle.py35730644editdlrm
pooling.py523140644editdlrm
rnn.py539680644editdlrm
sparse.py230150644editdlrm
transformer.py235240644editdlrm
upsampling.py100840644editdlrm
utils.py22510644editdlrm
_functions.py86350644editdlrm
__init__.py51490644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/nn/modules/channelshuffle.py (1295B)
from .module import Module from .. import functional as F from torch import Tensor class ChannelShuffle(Module): r"""Divide the channels in a tensor of shape :math:`(*, C , H, W)` into g groups and rearrange them as :math:`(*, C \frac g, g, H, W)`, while keeping the original tensor shape. Args: groups (int): number of groups to divide channels in. Examples:: >>> channel_shuffle = nn.ChannelShuffle(2) >>> input = torch.randn(1, 4, 2, 2) >>> print(input) [[[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]], [[13, 14], [15, 16]], ]] >>> output = channel_shuffle(input) >>> print(output) [[[[1, 2], [3, 4]], [[9, 10], [11, 12]], [[5, 6], [7, 8]], [[13, 14], [15, 16]], ]] """ __constants__ = ['groups'] groups: int def __init__(self, groups: int) -> None: super(ChannelShuffle, self).__init__() self.groups = groups def forward(self, input: Tensor) -> Tensor: return F.channel_shuffle(input, self.groups) def extra_repr(self) -> str: return 'groups={}'.format(self.groups)