← 开源
baal-org

baal

Bayesian active learning library for research and industrial usecases.

Model DevelopmentTraining toolkitsPython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
936
Star
91
Fork
+3
本周
18
贡献者
创建于 2019-09-30 · 更新于 2026-10-14 · 今日第 12530 名
主要开发者
Dref360parmidaatgfbickfordsmith

baal-org/baal 排名第 12,530,有 936 个星标。

同类别比较

baal-org/baal 排名第 12,530,此处有 8 个同类条目;acbull/pyHGT 排名第 12,529。

同类别比较
名称排名指标
Farama-Foundation/Shimmy12,519
语言:
Python
星标数:
937
分叉数:
32
简介:
PettingZoo and Gymnasium bindings for popular reinforcement learning environments outside of Farama
eaplatanios/tensorflow_scala12,521
语言:
Scala
星标数:
937
分叉数:
89
简介:
TensorFlow API for the Scala Programming Language
mnicnc404/CartoonGan-tensorflow12,524
语言:
Python
星标数:
937
分叉数:
238
简介:
Generate your own cartoon-style images with CartoonGAN (CVPR 2018), powered by TensorFlow 2.0 Alpha.
acbull/pyHGT12,529
语言:
Python
星标数:
936
分叉数:
173
简介:
Code for "Heterogeneous Graph Transformer" (WWW'20), which is based on pytorch_geometric
ImprintLab/Medical-SAM212,540
语言:
Python
星标数:
934
分叉数:
139
简介:
Medical SAM 2: Segment 3D Medical Images Via Segment Anything Model 2
benedekrozemberczki/graph2vec12,541
语言:
Python
星标数:
934
分叉数:
165
简介:
A parallel implementation of "graph2vec: Learning Distributed Representations of Graphs" (MLGWorkshop 2017).
eric-yyjau/pytorch-superpoint12,544
语言:
Jupyter Notebook
星标数:
934
分叉数:
194
简介:
Superpoint Implemented in PyTorch: https://arxiv.org/abs/1712.07629
dusty-nv/jetson-reinforcement12,546
语言:
C++
星标数:
933
分叉数:
224
简介:
Deep reinforcement learning GPU libraries for NVIDIA Jetson TX1/TX2 with PyTorch, OpenAI Gym, and Gazebo robotics simulator.
关键参数与规格
关键参数与规格
参数值
语言Python
类别Model Development
子类别Training toolkits
星标数936
分叉数91
贡献者18
创建日期2019-09-30
更新日期2026-10-14
1 天星标数0
7 天星标数3
排名12,530
上次排名12,453
排名变化-77
7 天星标排名7,145
上次 7 天星标排名7,171
7 天星标排名变化26
总星标排名11,719
上次总星标排名11,702
总星标排名变化-17
README 摘录

Bayesian Active Learning (Baal) Baal is an active learning library that supports both industrial applications and research usecases. Read the documentation at Our paper can be read on arXiv. It includes tips and tricks to make active learning usable in production. For a quick introduction to Baal and Bayesian active learning, please see these links: Seminar with Label Studio User guide Bayesian active learning presentation *Baal was initially developed at ElementAI (acquired by ServiceNow in 2021), but is now independant

. * Installation and requirements Baal requires . To install Baal using pip: We use Poetry as our package manager. To install Baal from source: Papers using Baal Bayesian active learning for production, a systematic study and a reusable library (Atighehchian et al. 2020) Synbols: Probing Learning Algorithms with Synthetic Datasets (Lacoste et al. 2020) Can Active Learning Preemptively Mitigate Fairness Issues? 2021) Active learning with MaskAL reduces annotation effort for training Mask R-CNN ( Blok et al. 2021) Stochastic Batch Acquisition for

Deep Active Learning (Kirsch et al. 2022) Combining X-Vectors and Bayesian Batch Active Learning: Two-Stage Active Learning Pipeline for Speech Recognition (Kundacina et al. Active learning is a special case of machine learning in which a learning algorithm is able to interactively query the user (or some other information source) to obtain the desired outputs at new data points (to understand the concept in more depth, refer to our tutorial). Baal Framework At the moment Baal supports the

following methods to perform active learning. 2019) Deep ensembles Semi-supervised learning If you want to propose new methods, please submit an issue. The **Monte-Carlo Dropout** method is a known approximation for Bayesian neural networks. In this method, the Dropout layer is used both in training and test time. By running the model multiple times whilst randomly dropping weights, we calculate the uncertainty of the prediction using one of the uncertainty measurements in heuristics. The framework consists of four

main parts, as demonstrated in the flowchart below: ActiveLearningDataset Heuristics ModelWrapper ActiveLearningLoop To get started, wrap your dataset in our _**ActiveLearningDataset**_ class. This will ensure that the dataset is split into and sets. The set represents the portion of the training set which is yet to be labelled. We provide a lightweight object _**ModelWrapper**_ similar to to make it easier to train and test the model. If your model is not ready for active learning, we provide Modules to prepare

them. For example, the _**MCDropoutModule**_ wrapper changes the existing dropout layer to be used in both training and inference time and the makes the specifies the number of iterations to run at training and inference. Finally, _**ActiveLearningLoop**_ automatically computes the uncertainty and label the most uncertain items in the pool. In conclusion, your script should be similar to this: For a complete experiment, see _experiments/vgg_mcdropout_cifar10. Re-run our Experiments Use Baal for YOUR Experiments Simply clone the

repo, and create your own experiment script similar to the example at _experiments/vgg_mcdropout_cifar10. Make sure to use

常见问题

记录了多少星标和分叉?

baal-org/baal 有 936 个星标和 91 个分叉。

仓库排名是多少?

baal-org/baal 排名第 12,530。

记录的语言和类别是什么?

baal-org/baal 有 936 个星标,语言为 Python,类别为 Model Development。

哪个仓库排名最接近?

baal-org/baal 与 acbull/pyHGT 比较,后者排名第 12,529,有 936 个星标。

README

Bayesian Active Learning (Baal)

![Office hours](https://img.shields.io/badge/Office hours-Calendly-blue.svg)

Baal is an active learning library that supports both industrial applications and research usecases.

Read the documentation at https://baal.readthedocs.io.

Our paper can be read on arXiv. It includes tips and tricks to make active learning usable in production.

For a quick introduction to Baal and Bayesian active learning, please see these links:

Baal was initially developed at ElementAI (acquired by ServiceNow in 2021), but is now independant.

Installation and requirements

Baal requires Python>=3.10.

To install Baal using pip: pip install baal

We use Poetry as our package manager. To install Baal from source: poetry install

Papers using Baal

What is active learning?

Active learning is a special case of machine learning in which a learning algorithm is able to interactively query the user (or some other information source) to obtain the desired outputs at new data points (to understand the concept in more depth, refer to our tutorial).

Baal Framework

At the moment Baal supports the following methods to perform active learning.

  • Monte-Carlo Dropout (Gal et al. 2015)
  • MCDropConnect (Mobiny et al. 2019)
  • Deep ensembles
  • Semi-supervised learning

If you want to propose new methods, please submit an issue.

The Monte-Carlo Dropout method is a known approximation for Bayesian neural networks. In this method, the Dropout layer is used both in training and test time. By running the model multiple times whilst randomly dropping weights, we calculate the uncertainty of the prediction using one of the uncertainty measurements in heuristics.py.

The framework consists of four main parts, as demonstrated in the flowchart below:

  • ActiveLearningDataset

  • Heuristics

  • ModelWrapper

  • ActiveLearningLoop

To get started, wrap your dataset in our ActiveLearningDataset class. This will ensure that the dataset is split into training and pool sets. The pool set represents the portion of the training set which is yet to be labelled.

We provide a lightweight object ModelWrapper similar to keras.Model to make it easier to train and test the model. If your model is not ready for active learning, we provide Modules to prepare them.

For example, the MCDropoutModule wrapper changes the existing dropout layer to be used in both training and inference time and the ModelWrapper makes the specifies the number of iterations to run at training and inference.

Finally, ActiveLearningLoop automatically computes the uncertainty and label the most uncertain items in the pool.

In conclusion, your script should be similar to this:

dataset = ActiveLearningDataset(your_dataset)
dataset.label_randomly(INITIAL_POOL)  # label some data
model = MCDropoutModule(your_model)
wrapper = ModelWrapper(model, args=TrainingArgs(...))
experiment = ActiveLearningExperiment(
    trainer=wrapper, # Huggingface or ModelWrapper to train
    al_dataset=dataset, # Active learning dataset
    eval_dataset=test_dataset, # Evaluation Dataset
    heuristic=BALD(), # Uncertainty heuristic to use
    query_size=100, # How many items to label per round.
    iterations=20, # How many MC sampling to perform per item.
    pool_size=None, # Optionally limit the size of the unlabelled pool.
    criterion=None # Stopping criterion for the experiment.
)
# The experiment will run until all items are labelled.
metrics = experiment.start()

For a complete experiment, see experiments/vgg_mcdropout_cifar10.py .

Re-run our Experiments

docker build [--target base_baal] -t baal .
docker run --rm baal --gpus all python3 experiments/vgg_mcdropout_cifar10.py

Use Baal for YOUR Experiments

Simply clone the repo, and create your own experiment script similar to the example at experiments/vgg_mcdropout_cifar10.py. Make sure to use the four main parts of Baal framework. Happy running experiments

Contributing!

To contribute, see CONTRIBUTING.md.

Who We Are!

"There is passion, yet peace; serenity, yet emotion; chaos, yet order."

The Baal team tests and implements the most recent papers on uncertainty estimation and active learning.

Current maintainers:

How to cite

If you used Baal in one of your project, we would greatly appreciate if you cite this library using this Bibtex:

@misc{atighehchian2019baal,
  title={Baal, a bayesian active learning library},
  author={Atighehchian, Parmida and Branchaud-Charron, Frederic and Freyberg, Jan and Pardinas, Rafael and Schell, Lorne
          and Pearse, George},
  year={2022},
  howpublished={\url{https://github.com/baal-org/baal/}},
}

Licence

To get information on licence of this API please read LICENCE

排名相邻
同类项目