Commit fdeee889 authored by limm's avatar limm
Browse files

release v1.6.1 of mmcv

parent df465820
......@@ -38,6 +38,11 @@ runner
.. automodule:: mmcv.runner
:members:
engine
------
.. automodule:: mmcv.engine
:members:
ops
------
.. automodule:: mmcv.ops
......
../../../CONTRIBUTING.md
......@@ -4,7 +4,9 @@
`PR` is the abbreviation of `Pull Request`. Here's the definition of `PR` in the [official document](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) of Github.
> Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch.
```
Pull requests let you tell others about changes you have pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch.
```
### Basic Workflow
......@@ -17,78 +19,96 @@
### Procedures in detail
1. Get the most recent codebase
+ When you work on your first PR
- Fork the OpenMMLab repository: click the **fork** button at the top right corner of Github page
![avatar](../_static/community/1.png)
- Clone forked repository to local
```bash
git clone git@github.com:XXX/mmcv.git
```
- Add source repository to upstream
```bash
git remote add upstream git@github.com:open-mmlab/mmcv
```
+ After your first PR
- Checkout master branch of the local repository and pull the latest master branch of the source repository
```bash
git checkout master
git pull upstream master
```
#### 1. Get the most recent codebase
2. Checkout a new branch from the master branch
```bash
git checkout -b branchname
```
- When you work on your first PR
Fork the OpenMMLab repository: click the **fork** button at the top right corner of Github page
![avatar](../_static/community/1.png)
Clone forked repository to local
```bash
git clone git@github.com:XXX/mmcv.git
```
Add source repository to upstream
```bash
git remote add upstream git@github.com:open-mmlab/mmcv
```
- After your first PR
Checkout master branch of the local repository and pull the latest master branch of the source repository
```bash
git checkout master
git pull upstream master
```
#### 2. Checkout a new branch from the master branch
```bash
git checkout -b branchname
```
```{tip}
To make commit history clear, we strongly recommend you checkout the master branch before create a new branch.
```
3. Commit your changes
```bash
# coding
git add [files]
git commit -m 'messages'
```
#### 3. Commit your changes
```bash
# coding
git add [files]
git commit -m 'messages'
```
4. Push your changes to the forked repository and create a PR
+ Push the branch to your forked remote repository
```bash
git push origin branchname
```
#### 4. Push your changes to the forked repository and create a PR
+ Create a PR
![avatar](../_static/community/2.png)
- Push the branch to your forked remote repository
+ Revise PR message template to describe your motivation and modifications made in this PR. You can also link the related issue to the PR manually in the PR message (For more information, checkout the [official guidance](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)).
```bash
git push origin branchname
```
5. Discuss and review your code
+ After creating a pull request, you can ask a specific person to review the changes you've proposed
![avatar](../_static/community/3.png)
- Create a PR
![avatar](../_static/community/2.png)
+ Modify your codes according to reviewers' suggestions and then push your changes
- Revise PR message template to describe your motivation and modifications made in this PR. You can also link the related issue to the PR manually in the PR message (For more information, checkout the [official guidance](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)).
6. Merge your branch to the master branch and delete the branch
```bash
git branch -d branchname # delete local branch
git push origin --delete branchname # delete remote branch
```
#### 5. Discuss and review your code
- After creating a pull request, you can ask a specific person to review the changes you've proposed
![avatar](../_static/community/3.png)
- Modify your codes according to reviewers' suggestions and then push your changes
#### 6. Merge your branch to the master branch and delete the branch
```bash
git branch -d branchname # delete local branch
git push origin --delete branchname # delete remote branch
```
### PR Specs
1. Use [pre-commit](https://pre-commit.com) hook to avoid issues of code style
2. One short-time branch should be matched with only one PR
3. Accomplish a detailed change in one PR. Avoid large PR
>- Bad: Support Faster R-CNN
>- Acceptable: Add a box head to Faster R-CNN
>- Good: Add a parameter to box head to support custom conv-layer number
- Bad: Support Faster R-CNN
- Acceptable: Add a box head to Faster R-CNN
- Good: Add a parameter to box head to support custom conv-layer number
4. Provide clear and significant commit message
5. Provide clear and meaningful PR description
>- Task name should be clarified in title. The general format is: [Prefix] Short description of the PR (Suffix)
>- Prefix: add new feature [Feature], fix bug [Fix], related to documents [Docs], in developing [WIP] (which will not be reviewed temporarily)
>- Introduce main changes, results and influences on other modules in short description
>- Associate related issues and pull requests with a milestone
- Task name should be clarified in title. The general format is: \[Prefix\] Short description of the PR (Suffix)
- Prefix: add new feature \[Feature\], fix bug \[Fix\], related to documents \[Docs\], in developing \[WIP\] (which will not be reviewed temporarily)
- Introduce main changes, results and influences on other modules in short description
- Associate related issues and pull requests with a milestone
......@@ -15,21 +15,19 @@ import os
import sys
import pytorch_sphinx_theme
from m2r import MdInclude
from recommonmark.transform import AutoStructify
from sphinx.builders.html import StandaloneHTMLBuilder
sys.path.insert(0, os.path.abspath('..'))
sys.path.insert(0, os.path.abspath('../..'))
version_file = '../mmcv/version.py'
with open(version_file, 'r') as f:
version_file = '../../mmcv/version.py'
with open(version_file) as f:
exec(compile(f.read(), version_file, 'exec'))
__version__ = locals()['__version__']
# -- Project information -----------------------------------------------------
project = 'mmcv'
copyright = '2018-2021, OpenMMLab'
copyright = '2018-2022, OpenMMLab'
author = 'MMCV Authors'
# The short X.Y version
......@@ -51,14 +49,14 @@ extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.napoleon',
'sphinx.ext.viewcode',
'sphinx.ext.autosectionlabel',
'sphinx_markdown_tables',
'myst_parser',
'sphinx_copybutton',
] # yapf: disable
myst_heading_anchors = 4
autodoc_mock_imports = ['mmcv._ext', 'mmcv.utils.ext_loader', 'torchvision']
autosectionlabel_prefix_document = True
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
......@@ -79,7 +77,7 @@ master_doc = 'index'
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = 'zh_CN'
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
......@@ -108,94 +106,9 @@ html_theme_options = {
'name': 'GitHub',
'url': 'https://github.com/open-mmlab/mmcv'
},
{
'name':
'文档',
'children': [
{
'name': 'MMCV',
'url': 'https://mmcv.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MIM',
'url': 'https://openmim.readthedocs.io/en/latest/'
},
{
'name': 'MMAction2',
'url': 'https://mmaction2.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MMClassification',
'url':
'https://mmclassification.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MMDetection',
'url': 'https://mmdetection.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MMDetection3D',
'url':
'https://mmdetection3d.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MMEditing',
'url': 'https://mmediting.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MMGeneration',
'url': 'https://mmgeneration.readthedocs.io/en/latest/',
},
{
'name': 'MMOCR',
'url': 'https://mmocr.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MMPose',
'url': 'https://mmpose.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MMSegmentation',
'url':
'https://mmsegmentation.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MMTracking',
'url': 'https://mmtracking.readthedocs.io/zh_CN/latest/',
},
{
'name': 'MMFlow',
'url': 'https://mmflow.readthedocs.io/en/latest/',
},
{
'name': 'MMFewShot',
'url': 'https://mmfewshot.readthedocs.io/zh_CN/latest/',
},
]
},
{
'name':
'OpenMMLab',
'children': [
{
'name': '主页',
'url': 'https://openmmlab.com/'
},
{
'name': 'GitHub',
'url': 'https://github.com/open-mmlab/'
},
{
'name': '推特',
'url': 'https://twitter.com/OpenMMLab'
},
{
'name': '知乎',
'url': 'https://zhihu.com/people/openmmlab'
},
]
},
]
],
# Specify the language of shared menu
'menu_lang': 'en',
}
# Add any paths that contain custom static files (such as style sheets) here,
......@@ -288,16 +201,3 @@ StandaloneHTMLBuilder.supported_image_types = [
# Ignore >>> when copying code
copybutton_prompt_text = r'>>> |\.\.\. '
copybutton_prompt_is_regexp = True
def setup(app):
app.add_config_value('no_underscore_emphasis', False, 'env')
app.add_config_value('m2r_parse_relative_links', False, 'env')
app.add_config_value('m2r_anonymous_references', False, 'env')
app.add_config_value('m2r_disable_inline_math', False, 'env')
app.add_directive('mdinclude', MdInclude)
app.add_config_value('recommonmark_config', {
'auto_toc_tree_section': 'Contents',
'enable_eval_rst': True,
}, True)
app.add_transform(AutoStructify)
# Definition of custom operators in MMCV
# MMCV Operators
To make custom operators in MMCV more standard, precise definitions of each operator are listed in this document.
<!-- TOC -->
- [Definition of custom operators in MMCV](#definition-of-custom-operators-in-mmcv)
- [MMCV Operators](#mmcv-operators)
- [MMCVBorderAlign](#mmcvborderalign)
- [Description](#description)
- [Parameters](#parameters)
......@@ -80,25 +83,26 @@
- [Inputs](#inputs-12)
- [Outputs](#outputs-12)
- [Type Constraints](#type-constraints-12)
- [torch](#torch)
- [grid_sampler](#grid_sampler)
- [grid_sampler\*](#grid_sampler)
- [Description](#description-13)
- [Parameters](#parameters-13)
- [Inputs](#inputs-13)
- [Outputs](#outputs-13)
- [Type Constraints](#type-constraints-13)
- [cummax](#cummax)
- [cummax\*](#cummax)
- [Description](#description-14)
- [Parameters](#parameters-14)
- [Inputs](#inputs-14)
- [Outputs](#outputs-14)
- [Type Constraints](#type-constraints-14)
- [cummin](#cummin)
- [cummin\*](#cummin)
- [Description](#description-15)
- [Parameters](#parameters-15)
- [Inputs](#inputs-15)
- [Outputs](#outputs-15)
- [Type Constraints](#type-constraints-15)
- [Reminders](#reminders)
<!-- TOC -->
## MMCVBorderAlign
......@@ -118,9 +122,9 @@ Read [BorderDet: Border Feature for Dense Object Detection](ttps://arxiv.org/abs
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | -------------------------------------------------------------- |
| `int` | `pool_size` | number of positions sampled over the boxes' borders(e.g. top, bottom, left, right). |
| Type | Parameter | Description |
| ----- | ----------- | ----------------------------------------------------------------------------------- |
| `int` | `pool_size` | number of positions sampled over the boxes' borders(e.g. top, bottom, left, right). |
### Inputs
......@@ -152,11 +156,11 @@ Read [CARAFE: Content-Aware ReAssembly of FEatures](https://arxiv.org/abs/1905.0
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | -------------------------------------------------------------- |
| `int` | `kernel_size` | reassemble kernel size, should be odd integer|
| `int` | `group_size` | reassemble group size |
| `float` | `scale_factor` | upsample ratio(>=1) |
| Type | Parameter | Description |
| ------- | -------------- | --------------------------------------------- |
| `int` | `kernel_size` | reassemble kernel size, should be odd integer |
| `int` | `group_size` | reassemble group size |
| `float` | `scale_factor` | upsample ratio(>=1) |
### Inputs
......@@ -187,8 +191,7 @@ Read [CCNet: Criss-Cross Attention for SemanticSegmentation](https://arxiv.org/p
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | -------------------------------------------------------------- |
None
### Inputs
......@@ -219,8 +222,7 @@ Read [CCNet: Criss-Cross Attention for SemanticSegmentation](https://arxiv.org/p
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | -------------------------------------------------------------- |
None
### Inputs
......@@ -242,7 +244,6 @@ Read [CCNet: Criss-Cross Attention for SemanticSegmentation](https://arxiv.org/p
- T:tensor(float32)
## MMCVCornerPool
### Description
......@@ -251,9 +252,9 @@ Perform CornerPool on `input` features. Read [CornerNet -- Detecting Objects as
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | ---------------------------------------------------------------- |
| `int` | `mode` | corner pool mode, (0: `top`, 1: `bottom`, 2: `left`, 3: `right`) |
| Type | Parameter | Description |
| ----- | --------- | ---------------------------------------------------------------- |
| `int` | `mode` | corner pool mode, (0: `top`, 1: `bottom`, 2: `left`, 3: `right`) |
### Inputs
......@@ -283,15 +284,15 @@ Read [Deformable Convolutional Networks](https://arxiv.org/pdf/1703.06211.pdf) f
### Parameters
| Type | Parameter | Description |
| -------------- | ------------------ | ------------------------------------------------------------------------------------- |
| `list of ints` | `stride` | The stride of the convolving kernel, (sH, sW). Defaults to `(1, 1)`. |
| `list of ints` | `padding` | Paddings on both sides of the input, (padH, padW). Defaults to `(0, 0)`. |
| `list of ints` | `dilation` | The spacing between kernel elements (dH, dW). Defaults to `(1, 1)`. |
| `int` | `groups` | Split input into groups. `input_channel` should be divisible by the number of groups. Defaults to `1`.|
| `int` | `deformable_groups` | Groups of deformable offset. Defaults to `1`. |
| `int` | `bias` | Whether to add a learnable bias to the output. `0` stands for `False` and `1` stands for `True`. Defaults to `0`. |
| `int` | `im2col_step` | Groups of deformable offset. Defaults to `32`. |
| Type | Parameter | Description |
| -------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `list of ints` | `stride` | The stride of the convolving kernel, (sH, sW). Defaults to `(1, 1)`. |
| `list of ints` | `padding` | Paddings on both sides of the input, (padH, padW). Defaults to `(0, 0)`. |
| `list of ints` | `dilation` | The spacing between kernel elements (dH, dW). Defaults to `(1, 1)`. |
| `int` | `groups` | Split input into groups. `input_channel` should be divisible by the number of groups. Defaults to `1`. |
| `int` | `deformable_groups` | Groups of deformable offset. Defaults to `1`. |
| `int` | `bias` | Whether to add a learnable bias to the output. `0` stands for `False` and `1` stands for `True`. Defaults to `0`. |
| `int` | `im2col_step` | Groups of deformable offset. Defaults to `32`. |
### Inputs
......@@ -323,11 +324,11 @@ Perform Modulated Deformable Convolution on input feature, read [Deformable Conv
### Parameters
| Type | Parameter | Description |
| -------------- | ------------------ | ------------------------------------------------------------------------------------- |
| `list of ints` | `stride` | The stride of the convolving kernel. (sH, sW) |
| `list of ints` | `padding` | Paddings on both sides of the input. (padH, padW) |
| `list of ints` | `dilation` | The spacing between kernel elements. (dH, dW) |
| Type | Parameter | Description |
| -------------- | ------------------- | ------------------------------------------------------------------------------------- |
| `list of ints` | `stride` | The stride of the convolving kernel. (sH, sW) |
| `list of ints` | `padding` | Paddings on both sides of the input. (padH, padW) |
| `list of ints` | `dilation` | The spacing between kernel elements. (dH, dW) |
| `int` | `deformable_groups` | Groups of deformable offset. |
| `int` | `groups` | Split input into groups. `input_channel` should be divisible by the number of groups. |
......@@ -365,13 +366,13 @@ Deformable roi pooling layer
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | -------------------------------------------------------------- |
| Type | Parameter | Description |
| ------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
| `int` | `output_height` | height of output roi |
| `int` | `output_width` | width of output roi |
| `float` | `spatial_scale` | used to scale the input boxes |
| `int` | `sampling_ratio` | number of input samples to take for each output sample. `0` means to take samples densely for current models. |
| `float` | `gamma` | gamma |
| `float` | `gamma` | gamma |
### Inputs
......@@ -404,10 +405,10 @@ Read [Pixel Recurrent Neural Networks](https://arxiv.org/abs/1601.06759) for mor
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | -------------------------------------------------------------- |
| `list of ints` | `stride` | The stride of the convolving kernel. (sH, sW). **Only support stride=1 in mmcv** |
| `list of ints` | `padding` | Paddings on both sides of the input. (padH, padW). Defaults to `(0, 0)`. |
| Type | Parameter | Description |
| -------------- | --------- | -------------------------------------------------------------------------------- |
| `list of ints` | `stride` | The stride of the convolving kernel. (sH, sW). **Only support stride=1 in mmcv** |
| `list of ints` | `padding` | Paddings on both sides of the input. (padH, padW). Defaults to `(0, 0)`. |
### Inputs
......@@ -443,10 +444,10 @@ Read [PSANet: Point-wise Spatial Attention Network for Scene Parsing](https://hs
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | -------------------------------------------------------------- |
| `int` | `psa_type` | `0` means collect and `1` means `distribute` |
| `list of ints` | `mask_size` | The size of mask |
| Type | Parameter | Description |
| -------------- | ----------- | -------------------------------------------- |
| `int` | `psa_type` | `0` means collect and `1` means `distribute` |
| `list of ints` | `mask_size` | The size of mask |
### Inputs
......@@ -478,9 +479,9 @@ Note this definition is slightly different with [onnx: NonMaxSuppression](https:
| Type | Parameter | Description |
| ------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `int` | `center_point_box` | 0 - the box data is supplied as [y1, x1, y2, x2], 1-the box data is supplied as [x_center, y_center, width, height]. |
| `int` | `center_point_box` | 0 - the box data is supplied as \[y1, x1, y2, x2\], 1-the box data is supplied as \[x_center, y_center, width, height\]. |
| `int` | `max_output_boxes_per_class` | The maximum number of boxes to be selected per batch per class. Default to 0, number of output boxes equal to number of input boxes. |
| `float` | `iou_threshold` | The threshold for deciding whether boxes overlap too much with respect to IoU. Value range [0, 1]. Default to 0. |
| `float` | `iou_threshold` | The threshold for deciding whether boxes overlap too much with respect to IoU. Value range \[0, 1\]. Default to 0. |
| `float` | `score_threshold` | The threshold for deciding when to remove boxes based on score. |
| `int` | `offset` | 0 or 1, boxes' width or height is (x2 - x1 + offset). |
......@@ -543,7 +544,6 @@ Perform RoIAlign on output feature, used in bbox_head of most two-stage detector
- T:tensor(float32)
## MMCVRoIAlignRotated
### Description
......@@ -552,15 +552,15 @@ Perform RoI align pooling for rotated proposals
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | -------------------------------------------------------------- |
| Type | Parameter | Description |
| ------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
| `int` | `output_height` | height of output roi |
| `int` | `output_width` | width of output roi |
| `float` | `spatial_scale` | used to scale the input boxes |
| `int` | `sampling_ratio` | number of input samples to take for each output sample. `0` means to take samples densely for current models. |
| `str` | `mode` | pooling mode in each bin. `avg` or `max` |
| `int` | `aligned` | If `aligned=0`, use the legacy implementation in MMDetection. Else, align the results more perfectly. |
| `int` | `clockwise` | If `aligned=0`, use the legacy implementation in MMDetection. Else, align the results more perfectly. |
| `int` | `clockwise` | If `aligned=0`, use the legacy implementation in MMDetection. Else, align the results more perfectly. |
### Inputs
......@@ -581,9 +581,7 @@ Perform RoI align pooling for rotated proposals
- T:tensor(float32)
# torch
## grid_sampler
## grid_sampler\*
### Description
......@@ -619,7 +617,7 @@ Check [torch.nn.functional.grid_sample](https://pytorch.org/docs/stable/generate
- T:tensor(float32, Linear)
## cummax
## cummax\*
### Description
......@@ -627,9 +625,9 @@ Returns a tuple (`values`, `indices`) where `values` is the cumulative maximum e
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | ---------------------------------------------------------------- |
| `int` | `dim` | the dimension to do the operation over |
| Type | Parameter | Description |
| ----- | --------- | -------------------------------------- |
| `int` | `dim` | the dimension to do the operation over |
### Inputs
......@@ -651,7 +649,7 @@ Returns a tuple (`values`, `indices`) where `values` is the cumulative maximum e
- T:tensor(float32)
## cummin
## cummin\*
### Description
......@@ -659,9 +657,9 @@ Returns a tuple (`values`, `indices`) where `values` is the cumulative minimum e
### Parameters
| Type | Parameter | Description |
| ------- | --------------- | ---------------------------------------------------------------- |
| `int` | `dim` | the dimension to do the operation over |
| Type | Parameter | Description |
| ----- | --------- | -------------------------------------- |
| `int` | `dim` | the dimension to do the operation over |
### Inputs
......@@ -682,3 +680,7 @@ Returns a tuple (`values`, `indices`) where `values` is the cumulative minimum e
### Type Constraints
- T:tensor(float32)
## Reminders
- Operators endwith `*` are defined in Torch and are included here for the conversion to ONNX.
## Introduction of onnx module in MMCV (Experimental)
## Introduction of mmcv.onnx module
### <span style="color:red">DeprecationWarning</span>
ONNX support will be deprecated in the future.
Welcome to use the unified model deployment toolbox MMDeploy: https://github.com/open-mmlab/mmdeploy
### register_extra_symbolics
......@@ -14,6 +19,10 @@ opset_version = 11
register_extra_symbolics(opset_version)
```
#### Reminder
- *Please note that this feature is experimental and may change in the future.*
#### FAQs
- None
## Onnxruntime Custom Ops
## ONNX Runtime Custom Ops
<!-- TOC -->
- [Onnxruntime Custom Ops](#onnxruntime-custom-ops)
- [ONNX Runtime Custom Ops](#onnx-runtime-custom-ops)
- [SoftNMS](#softnms)
- [Description](#description)
- [Parameters](#parameters)
......@@ -143,10 +143,10 @@ Filter out boxes has high IoU overlap with previously selected boxes.
#### Parameters
| Type | Parameter | Description |
| ------- | --------------- | ---------------------------------------------------------------------------------------------------------------- |
| `float` | `iou_threshold` | The threshold for deciding whether boxes overlap too much with respect to IoU. Value range [0, 1]. Default to 0. |
| `int` | `offset` | 0 or 1, boxes' width or height is (x2 - x1 + offset). |
| Type | Parameter | Description |
| ------- | --------------- | ------------------------------------------------------------------------------------------------------------------ |
| `float` | `iou_threshold` | The threshold for deciding whether boxes overlap too much with respect to IoU. Value range \[0, 1\]. Default to 0. |
| `int` | `offset` | 0 or 1, boxes' width or height is (x2 - x1 + offset). |
#### Inputs
......@@ -338,13 +338,13 @@ Perform Modulated Deformable Convolution on input feature, read [Deformable Conv
- T:tensor(float32, Linear)
## MMCVDeformConv2d
### MMCVDeformConv2d
### Description
#### Description
Perform Deformable Convolution on input feature, read [Deformable Convolutional Network](https://arxiv.org/abs/1703.06211) for detail.
### Parameters
#### Parameters
| Type | Parameter | Description |
| -------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
......@@ -355,7 +355,7 @@ Perform Deformable Convolution on input feature, read [Deformable Convolutional
| `int` | `group` | Split input into groups. `input_channel` should be divisible by the number of groups. |
| `int` | `im2col_step` | DeformableConv2d use im2col to compute convolution. im2col_step is used to split input and offset, reduce memory usage of column. |
### Inputs
#### Inputs
<dl>
<dt><tt>inputs[0]</tt>: T</dt>
......@@ -366,13 +366,13 @@ Perform Deformable Convolution on input feature, read [Deformable Convolutional
<dd>Input weight; 4-D tensor of shape (output_channel, input_channel, kH, kW).</dd>
</dl>
### Outputs
#### Outputs
<dl>
<dt><tt>outputs[0]</tt>: T</dt>
<dd>Output feature; 4-D tensor of shape (N, output_channel, outH, outW).</dd>
</dl>
### Type Constraints
#### Type Constraints
- T:tensor(float32, Linear)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment