Unofficial PyTorch Module - Depthwise Separable Convolution
An illustration of Depthwise Separable Convolution. Credit: Depthwise Convolution Is All You Need for Learning Multiple Visual Domains.
PyTorch (unofficial) implementation of Depthwise Separable Convolution. This type of convolution is introduced by Chollet in Xception: Deep Learning With Depthwise Separable Convolutions. This package provides SeparableConv1d, SeparableConv2d, SeparableConv3d, LazySeparableConv1d, LazySeparableConv2d, and LazySeparableConv3d.
Installation
Install separableconv-torch using pip (require: Python >=3.7).
pip install separableconv-torch
Parameters
| Parameter | Description | Type |
|---|---|---|
| in_channels | Number of channels in the input image | int |
| out_channels | Number of channels produced by the convolution | int |
| kernel_size | Size of the convolving kernel | int or tuple |
| stride | Stride of the convolution. Default: 1 | int or tuple, optional |
| padding | Padding added to all four sides of the input. Default: 0 | int, tuple or str, optional |
| padding_mode | 'zeros', 'reflect', 'replicate' or 'circular'. Default: 'zeros' |
string, optional |
| dilation | Spacing between kernel elements. Default: 1 | int or tuple, optional |
| depth_multiplier | The number of depthwise convolution output channels for each input channel. The total number of depthwise convolution output channels will be equal to in_channels * depth_multiplier. Default: 1 |
int, optional |
| normalization_dw | depthwise convolution normalization. Default: 'bn' | str, optional |
| normalization_pw | pointwise convolution normalization. Default: 'bn' | str, optional |
| activation_dw | depthwise convolution activation. Default: torch.nn.ReLU |
Callable[..., torch.nn.Module], optional |
| activation_pw | pointwise convolution activation. Default: torch.nn.ReLU |
Callable[..., torch.nn.Module], optional |
| bias | If True, adds a learnable bias to the output. Default: True |
bool, optional |
Example Usage
For 1-dimensional case.
import torch
import separableconv.nn as nn
# set input
input = torch.randn(4, 10, 100)
# define model
m = nn.SeparableConv1d(10, 30, 3)
# process input through model
output = m(input)
For 2-dimensional case.
import torch
import separableconv.nn as nn
# set input
input = torch.randn(4, 10, 100, 100)
# define model
m = nn.SeparableConv2d(10, 30, 3)
# process input through model
output = m(input)
For 3-dimensional case.
import torch
import separableconv.nn as nn
# set input
input = torch.randn(4, 10, 100, 100, 100)
# define model
m = nn.SeparableConv3d(10, 30, 3)
# process input through model
output = m(input)
Stacked SeparableConv2d.
import torch
import separableconv.nn as nn
# set input
input = torch.randn(4, 3, 100, 100)
# define model
m = nn.Sequential(
nn.SeparableConv2d(3, 32, 3),
nn.SeparableConv2d(32, 64, 3),
nn.SeparableConv2d(64, 96, 3))
# process input through model
output = m(input)
For lazy 2-dimensional case.
import torch
import separableconv.nn as nn
# set input
input = torch.randn(4, 10, 100, 100)
# define model
m = nn.LazySeparableConv2d(30, 3)
# process input through model
output = m(input)
Metadata
Release files for separableconv-torch 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| separableconv-torch-0.1.0.tar.gz | 8.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| separableconv_torch-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.4 kB
Release files / separableconv-torch-0.1.0.tar.gz
| Download URL | separableconv-torch-0.1.0.tar.gz |
|---|---|
| Size | 8.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6be6b822c0439c86cb5abaea1acdd3af8cb28f979542843259102041883d4eee
|
|
BLAKE2b-256 checksum How to use checksums |
a72dd0eeb05e35b1bc52b66885da8d274706681a7b902b4fd66fb2a5670b457f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.6
|
Release files / separableconv_torch-0.1.0-py3-none-any.whl
| Download URL | separableconv_torch-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b35382ef3431093f0b72985d2108aba46031d1b45b3b86057501f6cc3c09380
|
|
BLAKE2b-256 checksum How to use checksums |
70f7ef0b3c5d396cde64ec83b6ecc57a5c80022d1313b09277c97afe79aab75a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.6
|