Skip to main content

SegAL is an active learning freamwork for semantice segmentation.

Project description

SegAL

CI Status Poetry black pre-commit

PyPI Version Supported Python versions License

SegAL is an active learning freamwork for semantice segmentation.

Installation

SegAL is available on PyPI:

pip install segal

SegAL officially supports Python 3.8.

Active Learning Cycle

To understand what SegAL can do, we first introduce the pool-based active learning cycle.

al_cycle

  • Step 0: Prepare seed data (a small number of labeled data used for training)
  • Step 1: Train the model with seed data
    • Step 2: Predict unlabeled data with the trained model
    • Step 3: Query informative samples based on predictions
    • Step 4: Annotator (Oracle) annotate the selected samples
    • Step 5: Input the new labeled samples to labeled dataset
    • Step 6: Retrain model
  • Repeat step2~step6 until the f1 score of the model beyond the threshold or annotation budget is no left

SegAL can simulate the whole active learning cycle.

Usage

The user can execute the below command to run the active learning cycle.

python examples/run_al_cycle.py --dataset CamVid  --data_path ./data/CamVid/ --model_name Unet --encoder resnet34 --encoder_weights imagenet --num_classes 12 --strategy LeastConfidence --seed_ratio 0.02 --query_ratio 0.02 --n_epoch 1
  • dataset: which dataset to use, CamVidVOCCityScapes
  • data_path: the path where the data store
  • num_classes: number of classes
  • model_name: name of segmentation model. More model names can be found in architectures
  • encoder: name of encoder used in model. More encoder names can be found in encoders
  • encoder_weights: pretrained weights. See encoder table with available weights for each encoder
  • strategy: name of sampling strategy. Available strategies: RandomSampling, LeastConfidence, MarginSampling, EntropySampling, CealSampling, VoteSampling. You can find the papers for these strategy in here
  • seed_ratio: percentage of seed data. The used for initial training.
  • query_ratio: percentage of queried data in each round
  • n_epoch: number of epoch in each round

More explanation can be found in usage

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

segal-0.1.4.tar.gz (13.0 kB view hashes)

Uploaded Source

Built Distribution

segal-0.1.4-py3-none-any.whl (19.7 kB view hashes)

Uploaded Python 3

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