|
|
|
import torch.nn as nn |
|
|
|
from .registry import ACTIVATION_LAYERS |
|
|
|
|
|
@ACTIVATION_LAYERS.register_module() |
|
class HSwish(nn.Module): |
|
"""Hard Swish Module. |
|
|
|
This module applies the hard swish function: |
|
|
|
.. math:: |
|
Hswish(x) = x * ReLU6(x + 3) / 6 |
|
|
|
Args: |
|
inplace (bool): can optionally do the operation in-place. |
|
Default: False. |
|
|
|
Returns: |
|
Tensor: The output tensor. |
|
""" |
|
|
|
def __init__(self, inplace=False): |
|
super(HSwish, self).__init__() |
|
self.act = nn.ReLU6(inplace) |
|
|
|
def forward(self, x): |
|
return x * self.act(x + 3) / 6 |
|
|