Skip to main content

PyTorch 中用于计算机视觉的模块、操作和模型

项目描述

CI 状态 文件状态 测试覆盖率 黑色的

PyPi 状态 版本 执照

拥抱脸空间 在 Colab 中打开

计算机视觉中近期深度学习技巧的实现,可轻松与您最喜欢的框架和模型动物园配对。

全息仪是绝地武士团西斯都使用的信息存储数据仪设备,其中包含古老的课程或全息形式的有价值信息。

资料来源:伍基百科

快速浏览

在 Colab 中打开

该项目旨在实现高质量的实施、提高开发人员的灵活性以及与 PyTorch 生态系统的最大兼容性。例如,这里有一个简短的片段来展示如何使用 Holocron 模型:

from PIL import Image
from torchvision.transforms import Compose, ConvertImageDtype, Normalize, PILToTensor, Resize
from torchvision.transforms.functional import InterpolationMode
from holocron.models.classification import repvgg_a0

# Load your model
model = repvgg_a0(pretrained=True).eval()

# Read your image
img = Image.open(path_to_an_image).convert("RGB")

# Preprocessing
config = model.default_cfg
transform = Compose([
    Resize(config['input_shape'][1:], interpolation=InterpolationMode.BILINEAR),
    PILToTensor(),
    ConvertImageDtype(torch.float32),
    Normalize(config['mean'], config['std'])
])

input_tensor = transform(img).unsqueeze(0)

# Inference
with torch.inference_mode():
    output = model(input_tensor)
print(config['classes'][output.squeeze(0).argmax().item()], output.squeeze(0).softmax(dim=0).max())

安装

先决条件

安装 Holocron 需要Python 3.6(或更高版本)和pip / conda 。

最新稳定版本

您可以使用pypi安装软件包的最后一个稳定版本,如下所示:

pip install pylocron

或使用conda

conda install -c frgfm pylocron

开发者模式

或者,如果您希望使用尚未发布的项目的最新功能,您可以从源代码安装包(首先安装Git

git clone https://github.com/frgfm/Holocron.git
pip install -e Holocron/.

论文参考

满足各种需求的 PyTorch 层

视觉任务模型

视觉相关操作

尝试亚当以外的其他东西

更多好东西

文档

完整的软件包文档可在此处获取详细规格。

演示应用

该项目包括一个使用Gradio的最小演示应用程序

演示应用

您可以查看现场演示,托管在 :hugs: HuggingFace Spaces :hugs: 在这里 :point_down: 拥抱面部空间

参考脚本

提供了参考脚本,用于在著名的公共数据集上使用 holocron 训练您的模型。这些脚本目前支持以下视觉任务:

延迟基准

您渴望 SOTA 性能,但您不知道它在延迟方面是否符合您的需求?

在下表中,您将找到所有支持模型的延迟基准:

GPU平均值(标准) CPU 平均值(标准)
repvgg_a0 * 3.14 毫秒(0.87 毫秒) 23.28 毫秒(1.21 毫秒)
repvgg_a1 * 4.13 毫秒(1.00 毫秒) 29.61 毫秒(0.46 毫秒)
repvgg_a2 * 7.35 毫秒(1.11 毫秒) 46.87 毫秒(1.27 毫秒)
repvgg_b0 * 4.23 毫秒(1.04 毫秒) 33.16 毫秒(0.58 毫秒)
repvgg_b1 * 12.48 毫秒(0.96 毫秒) 100.66 毫秒(1.46 毫秒)
repvgg_b2 * 20.12 毫秒(0.31 毫秒) 155.90 毫秒(1.59 毫秒)
repvgg_b3 * 24.94 毫秒(1.70 毫秒) 224.68 毫秒(14.27 毫秒)
rexnet1_0x 6.01 毫秒(0.26 毫秒) 13.66 毫秒(0.21 毫秒)
rexnet1_3x 6.43 毫秒(0.10 毫秒) 19.13 毫秒 (2.05 毫秒)
rexnet1_5x 6.46 毫秒(0.28 毫秒) 21.06 毫秒(0.24 毫秒)
rexnet2_0x 6.75 毫秒(0.21 毫秒) 31.77 毫秒(3.28 毫秒)
rexnet2_2x 6.92 毫秒(0.51 毫秒) 33.61 毫秒(0.60 毫秒)
sknet50 11.40 毫秒(0.38 毫秒) 54.03 毫秒(3.35 毫秒)
sknet101 23.55 毫秒(1.11 毫秒) 94.89 毫秒(5.61 毫秒)
sknet152 69.81 毫秒(0.60 毫秒) 253.07 毫秒(3.33 毫秒)
三叉戟网络50 16.62 毫秒(1.21 毫秒) 142.85 毫秒(5.33 毫秒)
res2net50_26w_4s 9.25 毫秒(0.22 毫秒) 41.84 毫秒(0.80 毫秒)
resnet50d 36.97 毫秒(3.58 毫秒) 36.97 毫秒(3.58 毫秒)
pyconv_resnet50 20.03 毫秒(0.28 毫秒) 178.85 毫秒(2.35 毫秒)
pyconvhg_resnet50 38.41 毫秒(0.33 毫秒) 301.03 毫秒(12.39 毫秒)
暗网24 3.94 毫秒(1.08 毫秒) 29.39 毫秒(0.78 毫秒)
暗网19 3.17 毫秒(0.59 毫秒) 26.36 毫秒(2.80 毫秒)
暗网53 7.12 毫秒(1.35 毫秒) 53.20 毫秒(1.17 毫秒)
cspdarknet53 6.41 毫秒(0.21 毫秒) 48.05 毫秒(3.68 毫秒)
cspdarknet53_mish 6.88 毫秒(0.51 毫秒) 67.78 毫秒(2.90 毫秒)

RepVGG 模型报告的延迟是重新参数化的版本之一

该基准测试在笔记本电脑上对 (224, 224) 输入执行了 100 多次迭代,以更好地反映普通用户可以预期的性能。硬件设置包括用于 CPU 的Intel(R) Core(TM) i7-10750H,以及用于 GPU的具有 Max-Q 设计的 NVIDIA GeForce RTX 2070

您可以在硬件上为任何模型运行此延迟基准测试,如下所示:

python scripts/eval_latency.py rexnet1_0x

可以使用检查所有脚本参数python scripts/eval_latency.py --help

码头集装箱

如果你想部署容器化环境,你可以使用提供的 Dockerfile 来构建一个 docker 镜像:

docker build . -t <YOUR_IMAGE_TAG>

最小的 API 模板

正在寻找样板文件以使用 REST API 从 Holocron 部署模型?感谢出色的FastAPI框架,您可以轻松地做到这一点。

在本地部署您的 API

在 docker 容器中运行您的 API,如下所示:

cd api/
make lock-api
make run-api

为了停止容器,使用make stop-api

你部署了什么

您的 API 现在在端口 8080 上运行,其文档http://localhost:8080/redoc和可请求的路由:

import requests
with open('/path/to/your/img.jpeg', 'rb') as f:
    data = f.read()
response = requests.post("http://localhost:8080/classification", files={'file': data}).json()

引文

如果你想引用这个项目,请随意使用这个BibTeX参考:

@software{Fernandez_Holocron_2020,
author = {Fernandez, François-Guillaume},
month = {5},
title = {{Holocron}},
url = {https://github.com/frgfm/Holocron},
year = {2020}
}

贡献

非常感谢任何形式的贡献!

你可以找到一个简短的指南CONTRIBUTING来帮助发展这个项目!

执照

根据 Apache 2.0 许可证分发。有关LICENSE更多信息,请参阅。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pylocron-0.2.1.tar.gz (97.3 kB 查看哈希

已上传 source

内置分布

pylocron-0.2.1-py3-none-any.whl (143.1 kB 查看哈希

已上传 py3