Skip to main content

oneflow vision codebase

Project description

flowvision

PyPI docs GitHub GitHub release PRs Welcome

Introduction

The flowvision package consists of popular datasets, SOTA computer vision models, layers, utilities, schedulers, advanced data augmentations and common image transformations based on OneFlow.

Installation

First install OneFlow, please refer to install-oneflow for more details.

Then install the latest stable release of flowvision

pip install flowvision==0.2.2

Overview of flowvision structure

Vision Models Components Augmentation and Datasets
  • Classification
    • AlexNet
    • SqueezeNet
    • VGG
    • GoogleNet
    • InceptionV3
    • ResNet
    • ResNeXt
    • ResNeSt
    • SENet
    • DenseNet
    • ShuffleNetV2
    • MobileNetV2
    • MobileNetV3
    • MNASNet
    • Res2Net
    • EfficientNet
    • GhostNet
    • RegNet
    • ReXNet
    • Vision Transformer
    • DeiT
    • PVT
    • Swin Transformer
    • CSwin Transformer
    • CrossFormer
    • PoolFormer
    • Mlp Mixer
    • ResMLP
    • gMLP
    • ConvMixer
    • ConvNeXt
    • LeViT
    • RegionViT
    • UniFormer
    • VAN
    • MobileViT
    • DeiT-III
    • CaiT
    • DLA
    • GENet
    • HRNet
    • FAN
  • Detection
    • SSD
    • SSDLite
    • Faster RCNN
    • RetinaNet
  • Segmentation
    • FCN
    • DeepLabV3
  • Neural Style Transfer
    • StyleNet
  • Face Recognition
    • IResNet
  • Attention Layers
    • SE
    • BAM
    • CBAM
    • ECA
    • Non Local Attention
    • Global Context
    • Gated Channel Transform
    • Coordinate Attention
  • Regularization Layers
    • Drop Block
    • Drop Path
    • Stochastic Depth
    • LayerNorm2D
  • Basic Layers
    • Patch Embedding
    • Mlp Block
    • FPN
  • Activation Layers
    • Hard Sigmoid
    • Hard Swish
  • Initialization Function
    • Truncated Normal
    • Lecun Normal
  • LR Scheduler
    • StepLRScheduler
    • MultiStepLRScheduler
    • CosineLRScheduler
    • LinearLRScheduler
    • PolyLRScheduler
    • TanhLRScheduler
  • Loss
    • LabelSmoothingCrossEntropy
    • SoftTargetCrossEntropy
  • Basic Augmentation
    • CenterCrop
    • RandomCrop
    • RandomResizedCrop
    • FiveCrop
    • TenCrop
    • RandomVerticalFlip
    • RandomHorizontalFlip
    • Resize
    • RandomGrayscale
    • GaussianBlur
  • Advanced Augmentation
    • Mixup
    • CutMix
    • AugMix
    • RandomErasing
    • Rand Augmentation
    • Auto Augmentation
  • Datasets
    • CIFAR10
    • CIFAR100
    • COCO
    • FashionMNIST
    • ImageNet
    • VOC

Documentation

Please refer to docs for full API documentation and tutorials

ChangeLog

Please refer to ChangeLog for details and release history

Model Zoo

We have conducted all the tests under the same setting, please refer to the model page here for more details.

Quick Start

Create a model

In flowvision we support two ways to create a model.

  • Import the target model from flowvision.models, e.g., create alexnet from flowvision
from flowvision.models.alexnet import alexnet
model = alexnet()

# will download the pretrained model
model = alexnet(pretrained=True)

# customize model to fit different number of classes
model = alexnet(num_classes=100)
  • Or create model in an easier way by using ModelCreator, e.g., create alexnet model by ModelCreator
from flowvision.models import ModelCreator
alexnet = ModelCreator.create_model("alexnet")

# will download the pretrained model
alexnet = ModelCreator.create_model("alexnet", pretrained=True)

# customize model to fit different number of classes
alexnet = ModelCreator.create_model("alexnet", num_classes=100)

Tabulate all models with pretrained weights

ModelCreator.model_table() returns a tabular results of available models in flowvision. To check all of pretrained models, pass in pretrained=True in ModelCreator.model_table().

from flowvision.models import ModelCreator
all_pretrained_models = ModelCreator.model_table(pretrained=True)
print(all_pretrained_models)

You can get the results like:

╒════════════════════════════════════════════╤══════════════╕
 Supported Models                            Pretrained   
╞════════════════════════════════════════════╪══════════════╡
 alexnet                                     true         
├────────────────────────────────────────────┼──────────────┤
 convmixer_1024_20                           true         
├────────────────────────────────────────────┼──────────────┤
 convmixer_1536_20                           true         
├────────────────────────────────────────────┼──────────────┤
 convmixer_768_32_relu                       true         
├────────────────────────────────────────────┼──────────────┤
 crossformer_base_patch4_group7_224          true         
├────────────────────────────────────────────┼──────────────┤
 crossformer_large_patch4_group7_224         true         
├────────────────────────────────────────────┼──────────────┤
 crossformer_small_patch4_group7_224         true         
├────────────────────────────────────────────┼──────────────┤
 crossformer_tiny_patch4_group7_224          true         
├────────────────────────────────────────────┼──────────────┤
                    ...                      ...          
├────────────────────────────────────────────┼──────────────┤
 wide_resnet101_2                            true         
├────────────────────────────────────────────┼──────────────┤
 wide_resnet50_2                             true         
╘════════════════════════════════════════════╧══════════════╛

Search for supported model by Wildcard

It is easy to search for model architectures by using Wildcard as below:

from flowvision.models import ModelCreator
all_efficientnet_models = ModelCreator.model_table("**efficientnet**")
print(all_efficientnet_models)

You can get the results like:

╒════════════════════╤══════════════╕
 Supported Models    Pretrained   
╞════════════════════╪══════════════╡
 efficientnet_b0     true         
├────────────────────┼──────────────┤
 efficientnet_b1     true         
├────────────────────┼──────────────┤
 efficientnet_b2     true         
├────────────────────┼──────────────┤
 efficientnet_b3     true         
├────────────────────┼──────────────┤
 efficientnet_b4     true         
├────────────────────┼──────────────┤
 efficientnet_b5     true         
├────────────────────┼──────────────┤
 efficientnet_b6     true         
├────────────────────┼──────────────┤
 efficientnet_b7     true         
╘════════════════════╧══════════════╛

List all models supported in flowvision

ModelCreator.model_list has similar function as ModelCreator.model_table but return a list object, which gives the user a more flexible way to check the supported model in flowvision.

  • List all models with pretrained weights
from flowvision.models import ModelCreator
all_pretrained_models = ModelCreator.model_list(pretrained=True)
print(all_pretrained_models[:5])

You can get the results like:

['alexnet', 
 'convmixer_1024_20', 
 'convmixer_1536_20', 
 'convmixer_768_32_relu', 
 'crossformer_base_patch4_group7_224']
  • Support wildcard search
from flowvision.models import ModelCreator
all_efficientnet_models = ModelCreator.model_list("**efficientnet**")
print(all_efficientnet_models)

You can get the results like:

['efficientnet_b0', 
 'efficientnet_b1', 
 'efficientnet_b2', 
 'efficientnet_b3', 
 'efficientnet_b4', 
 'efficientnet_b5', 
 'efficientnet_b6', 
 'efficientnet_b7']

Disclaimer on Datasets

This is a utility library that downloads and prepares public datasets. We do not host or distribute these datasets, vouch for their quality or fairness, or claim that you have license to use the dataset. It is your responsibility to determine whether you have permission to use the dataset under the dataset's license.

If you're a dataset owner and wish to update any part of it (description, citation, etc.), or do not want your dataset to be included in this library, please get in touch through a GitHub issue. Thanks for your contribution to the ML community!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flowvision-0.2.2.tar.gz (339.0 kB view details)

Uploaded Source

File details

Details for the file flowvision-0.2.2.tar.gz.

File metadata

  • Download URL: flowvision-0.2.2.tar.gz
  • Upload date:
  • Size: 339.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for flowvision-0.2.2.tar.gz
Algorithm Hash digest
SHA256 104be064115322d64160a5a2cbc080333362459ab6a0015d675b4bf9a99f3010
MD5 c0a117541a8b116c1696fe1b48f765e1
BLAKE2b-256 54a793ceb683e5ed7ccb3afa85926c3c1857c3a34e07d7c426748aac7a3fd745

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page