Skip to content

Latest commit

 

History

History
265 lines (193 loc) · 24.1 KB

README.en.md

File metadata and controls

265 lines (193 loc) · 24.1 KB

PyTorch Implementations

english-version

中文版本

The original intention of this project is to implement deep learning models I have learned over the years, providing notebooks and Medium articles for learning. This project is not a production-ready library for a specific domain but serves as a resource for learning.

The development direction will extend towards a monorepo.

Packages

Common

package name: common

Model Article Link Package
K-Means - kmeans
Kernel PCA medium kernel_pca

Image classification

package name: image_classification

Model Article Link Package
ResNet50, ResNet-B, ResNet-C, ResNet-D medium resnet
ResNeXt50-32x4d medium resnext
ResNeSt50 medium resnest
Res2Net50 medium res2net
SE-ResNet50, SE-ResNeXt50 medium senet
SKNet medium sknet
Residual attention network(AttentionNet56) medium residual_attention
DenseNet medium densenet
Highway Network medium highway
MobileNet v1 medium mobilenet
MobileNet v2 medium mobilenetv2
MobileNet v3 medium mobilenetv3
EfficientNet v1 medium efficientnet
EfficientNet v2 medium efficientnetv2
GhostNet medium ghostnet
GhostNet v2 - ghostnetv2
ShuffleNet medium shufflenet
ShuffleNetV2 medium shufflenetv2
SqueezeNet medium squeezenet
SqueezeNeXt medium squeezenext
Extraction medium extraction
DarkNet19 medium darknet19
Vision transformer (ViT) medium vit
Distillated Vision transformer (DeiT) medium deit

Object detection

package name: object_detection

Model Article Link Package
You only look once (YOLO) medium yolov1
Tiny YOLOv1 - yolov1_tiny
YOLOv2 medium yolov2
Single shot multibox detector (SSD) - ssd
RetinaNet - retinanet

Semantic Segmentation

package name: semantic_segmentation

Model Article Link Package
UNet medium unet
Fully convolution network (FCN) medium fcn
Pyramid spatial pooling network (PSPNet) medium pspnet
Dual attention(DANet) medium dual_attention
DeepLab v1 - deeplabv1
DeepLab v2 - deeplabv2
DeepLab v3 - deeplabv3
Lite reduced ASPP (LR-ASPP) - lr_aspp
Reduced ASPP (R-ASPP) - r_aspp
Multi-scale context aggregation by dilation - mscad
ParseNet - parsenet
Segmentation transformer (SETR) medium setr

Optical character recognition (OCR)

package name: ocr

Model Article Link Package
Convolution recurrent neural network (CRNN) medium crnn

Image generation

package name: image_generation

Model Article Link Package
Variational autoencoder (VAE) medium vae
Generative adversarial network (GAN) medium gan
Deep convolution GAN (DCGAN) medium dcgan

Style transfer

package name: style_transfer

Model Article Link Package
Neural style transfer medium neural_style_transfer
Neural Doodle medium neural_doodle
Fast style transfer medium fast_style_transfer
Adaptive instance normalization (AdaIN) medium adain
Pix2Pix medium pix2pix

Sequence data

package name: sequence_data

Model Article Link Package
Long and short term memory (LSTM) medium lstm
Bidirectional LSTM (BiLSTM) medium lstm
Gated recurrent unit (GRU) medium gru
Temporal convolution network (TCN) medium tcn
Seq2Seq medium seq2seq
Transformer - transformer

Language model

package name: language_model

Model Article Link Package
Word2vec medium word2vec
GloVe medium glove
Vector log-bilinear language model (vLBL/ivLBL) medium vlbl

Text classification

package name: text_classification

Model Article Link Package
TextCNN medium textcnn
Character CNN (CharCNN) medium charcnn
Very deep CNN (VDCNN) medium vdcnn
Recurrent CNN (RCNN) medium rcnn
Dynamic CNN (DCNN) medium dcnn
FastText - fasttext

Tag prediction

package name: tag_prediction

Model Article Link Package
Bidirectional LSTM - Conditional random field (BiLSTM-CRF) medium bilstm_crf

Text generation

package name: text_generation

Model Article Link Package
Show and tell - show_and_tell

Few-shot learning

package name: few_shot

Model Article Link Package
Siamese network medium siamese
Prototypical network medium prototypical

Representation learning

package name: representation

Model Article Link Package
Positive pairwise mutual information (PPMI) medium ppmi
Hellinger PCA medium hellinger

Graph neural network (GNN)

package name: graph

Model Article Link Package
Graph Convolution Network (GCN) medium gcn
Graph Attention Network (GAT) medium attention
Graph Attention Network v2 (GAT v2) medium attention

Reinforcement Learning

package name: reinforcement_learning

Model Article Link Package
Deep Q Network medium dqn

Installation

pip install git+https://www.github.com/gite0z9/pytorch-implementations.git@main#torchlake --target=/torchlake

Project structure

notebooks: demonstrate how to use torchlake.

torchlake: deep learning models composed of different domains.

In general, each domain will have a structure similar to the following:

├───adapter
├───artifacts
│   └───model_name
├───configs
│   └───model_name
├───constants
├───controller
├───datasets
│   └───dataset_name
|       └───datasets.py
├───models
│   ├───base
│   └───model_name
|       |───reference
|       |   └───paper
│       ├───model.py
│       ├───network.py
│       ├───loss.py
│       ├───helper.py
│       └───decode.py
├───runs
├───scripts
│   └───debug
├───tests
├───utils
└───requirements.txt

adapter: Interface between the controller and other resources (model, model.loss, etc.).

configs: Model configuration files, including device definition, model definition, training definition, and inference definition, covering four aspects.

constants: Fixed values, including constants and enums.

controller: Controller, where controller is a shared base, and trainer, evaluator, predictor are responsible for training, evaluation, and prediction tasks, respectively.

models: Model definitions, where network.py represents the model blocks, model.py is the assembled model, and loss.py is the loss function.

datasets: Datasets, currently categorized by domain, with raw datasets and CSV datasets. The former reads raw data, while the latter reads processed CSV data (such as normalized coordinates).

runs: Folder documenting TensorBoard logs for trainer and evaluator results.

tests: Unit tests using pytest.

utils: Stores functions with low dependency and high reusability.

Model and dataset configurations are controlled using pydantic.

Module dependency

modules drawio