octconv

Octave Convolution Implementation in PyTorch

https://github.com/braincreators/octconv

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.5%) to scientific vocabulary

Keywords

computer-vision convolution convolutional-neural-networks implementation machine-learning octave octconv pytorch
Last synced: 6 months ago · JSON representation

Repository

Octave Convolution Implementation in PyTorch

Basic Info
  • Host: GitHub
  • Owner: braincreators
  • License: mit
  • Language: Python
  • Default Branch: master
  • Size: 99.6 KB
Statistics
  • Stars: 19
  • Watchers: 4
  • Forks: 5
  • Open Issues: 2
  • Releases: 2
Topics
computer-vision convolution convolutional-neural-networks implementation machine-learning octave octconv pytorch
Created almost 7 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

README.md

Octave Convolution

Build Status

Implementation of Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution

schema

Paper Abstract

In natural images, information is conveyed at different frequencies where higher frequencies are usually encoded with fine details and lower frequencies are usually encoded with global structures. Similarly, the output feature maps of a convolution layer can also be seen as a mixture of information at different frequencies. In this work, we propose to factorize the mixed feature maps by their frequencies, and design a novel Octave Convolution (OctConv) operation to store and process feature maps that vary spatially “slower” at a lower spatial resolution reducing both memory and computation cost. Unlike existing multi-scale methods, OctConv is formulated as a single, generic, plug-and-play convolutional unit that can be used as a direct replacement of (vanilla) convolutions without any adjustments in the network architecture. It is also orthogonal and complementary to methods that suggest better topologies or reduce channel-wise redundancy like group or depth-wise convolutions. We experimentally show that by simply replacing convolutions with OctConv, we can consistently boost accuracy for both image and video recognition tasks, while reducing memory and computational cost. An OctConv-equipped ResNet-152 can achieve 82.9% top-1 classification accuracy on ImageNet with merely 22.2 GFLOPs.

Installation

From PyPI:

pip install octconv

Bleeding edge version from github:

pip install git+https://github.com/braincreators/octconv.git#egg=octconv

Usage

```python import torch from octconv import OctConv2d

(batch, channels, height, width)

x = torch.rand(5, 3, 200, 200)

conv1 = OctConv2d(inchannels=3, outchannels=10, kernelsize=3, alpha=(0., 0.5), padding=1) conv2 = OctConv2d(inchannels=10, outchannels=20, kernelsize=7, alpha=(0.5, 0.8), padding=3) conv3 = OctConv2d(inchannels=20, outchannels=1, kernel_size=3, alpha=(0.8, 0.), padding=1)

out = conv3(conv2(conv1(x))) # shape: (5, 1, 200, 200) ```

Original implementation

Citation

@article{chen2019drop, title={Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution}, author={Chen, Yunpeng and Fan, Haoqi and Xu, Bing and Yan, Zhicheng and Kalantidis, Yannis and Rohrbach, Marcus and Yan, Shuicheng and Feng, Jiashi}, journal={arXiv preprint arXiv:1904.05049}, year={2019} }

Owner

  • Name: Braincreators
  • Login: braincreators
  • Kind: organization
  • Location: Amsterdam

GitHub Events

Total
  • Watch event: 1
  • Pull request event: 1
Last Year
  • Watch event: 1
  • Pull request event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 37
  • Total Committers: 3
  • Avg Commits per committer: 12.333
  • Development Distribution Score (DDS): 0.216
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
miguel m****s@b****m 29
Angel Ayala a****a@g****m 6
Marcel Vingerling m****g@b****m 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 2
  • Total pull requests: 6
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 9 days
  • Total issue authors: 2
  • Total pull request authors: 5
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.5
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tx1994108 (1)
  • daixiangzi (1)
Pull Request Authors
  • sjaek (2)
  • emileferreira (2)
  • angel-ayala (1)
  • dependabot[bot] (1)
  • miguelvr (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 23 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 2
  • Total maintainers: 1
pypi.org: octconv

Octave Convolution Implementation in PyTorch

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 23 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 11.5%
Stargazers count: 14.6%
Forks count: 15.4%
Average: 15.8%
Downloads: 27.6%
Maintainers (1)
Last synced: 7 months ago

Dependencies

benchmarks/requirements.txt pypi
  • configargparse ==0.14.0
  • octconv >=0.1.0
  • scipy ==1.2.1
  • tensorboard ==1.12.2
  • tensorboardx ==1.6
  • torch >=1.0.0
  • torchvision 7a4845a99f845d4e2fc3ceb5b6cdf7fed29dc662