Skip to content

thatblueboy/involution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Involution

This repository contains re-Implementation of https://arxiv.org/abs/2103.06255

Involution Kernal

The authors of Involution: Inverting the Inherence of Convolution for Visual Recognition propose a novel involutional layers, which aims to enhance the representation power of convolutional neural networks by inverting the inherent properties of convolution operations. As such these kernals are channel agnostic and spatial specific.

Setup

pip install torch torchvision
pip install wandb
pip install lightning

Usage

from models.rednet import RedNet

rednet50 = RedNet(50) # 50 layer Rednet model

Folders

models contains implementation of backbone models introduced the paper and related heads and neck architectures.

notebooks contains main python notebooks for training and testing.

Training

git clone https://github.com/thatblueboy/involution.git #clone the repo
git checkout submission_branch #change to the submission branch

Edit the train.py file. Here you can change various Hyperparameters in the config dict. Note that changing lr_scheduler will require corresponding chnage in lr_sceduler_kwargs. Note: We use a random split split on Caltech256. For uniformity we store this split in the data_module.pth and load it for every training run. This behaviour could be changed by setting the 'data_module_path' value in the config dict = None.

To switch from training to testing mode, change the last line in the train.py from

trainer.fit(model, data_module)

to

trainer.test(test, data_module)

after making all the necessary changes do:

python train.py

To Do

About

Inverting the inherence of convolution

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages