ML Inference 🥶
Project description
🏖️ Nbox
pypi nbox
is stable for SSH and other APIs. Check out v1 for the latest code and APIs!
A library that makes using a host of models provided by the opensource community a lot more easier.
The entire purpose of this package is to make using models 🥶.
pip install nbox
Current LoC
SLOC Directory SLOC-by-Language (Sorted)
996 top_dir python=996
88 framework python=88
Totals grouped by language (dominant language first):
python: 1084 (100.00%)
🔥 Usage
import nbox
# As all these models come from the popular frameworks you use such as
# torchvision, efficient_pytorch or hf.transformers
model = nbox.load("torchvision/mobilenetv2", pretrained = True)
# nbox makes inference the priority so you can use it
# pass it a list for batch inference
out_single = model('cat.jpg')
out = model([Image.open('cat.jpg'), np.array(Image.open('cat.jpg'))])
tuple(out.shape) == (2, 1000)
# deploy the model to a managed kubernetes cluster on NimbleBox.ai
url_endpoint, nbx_api_key = model.deploy()
# or load a cloud infer model and use seamlessly
model = nbox.load(
model_key_or_url = url_endpoint,
nbx_api_key = nbx_api_key,
category = "image"
)
# Deja-Vu!
out_single = model('cat.jpg')
out = model([Image.open('cat.jpg'), np.array(Image.open('cat.jpg'))])
tuple(out.shape) == (2, 1000)
⚙️ CLI
Just add this to your dockerfile or github actions.
NBX_AUTH=1 python -m nbox deploy --model_path=my/model.onnx --deployment_type="nbox"
# or for more details
python -m nbox --help
✏️ Things for Repo
- Using
poetry
for proper package management as @cshubhamrao says.- Add new packages with
poetry add <name>
. Do not addtorch
,tensorflow
and others, useless burden to manage those. - When pushing to pypi just do
poetry build && poetry publish
this manages all the things around
- Add new packages with
- Install
pytest
and then runpytest tests/ -v
. - Using
black
for formatting, VSCode to the moon. - To make the docs:
# from current folder sphinx-apidoc -o docs/source/ ./nbox/ -M -e cd docs && make html cd ../build/html && python3 -m http.server 80
🧩 License
The code in thist repo is licensed as BSD 3-Clause. Please check for individual repositories for licenses.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nbox-0.9.6.tar.gz
(108.6 kB
view hashes)
Built Distribution
nbox-0.9.6-py3-none-any.whl
(111.3 kB
view hashes)