THINC是一个轻巧的深度学习库,为构图提供了优雅,类型检查的功能编程API,并提供了对Pytorch,Tensorflow和MXNet等其他框架中定义的层次的支持。您可以将THINC用作接口层,独立工具包或开发新型号的灵活方法。 THINC的先前版本一直在数千家公司中通过Spacy和Prodigy安静地生产。我们编写了新版本,以使用户与他们喜欢的框架构建,配置和部署自定义模型。
mypy
插件来检查模型定义。 THINC与Python 3.6+兼容,并且在Linux , MacOS和Windows上运行。 PIP可从PIP获得最新的带有二元车轮的版本。在安装THINC及其依赖项之前,请确保您的pip
, setuptools
和wheel
是最新的。对于最近的发行版,建议使用PIP 19.3或更新。
pip install -U pip setuptools wheel
pip install thinc
有关不同后端和GPU的可选依赖项的详细信息,请参见扩展安装文档。您可能还需要设置静态类型检查以利用THINC的类型系统。
配x 如果您已经安装了Pytorch,并且正在使用Python 3.7+,请用pip uninstall dataclasses
dataclasses
卸载数据元,因为Pytorch可能已经安装了Pytorch,并且与Python 3.7+不兼容。
另请参见/examples
目录和使用文档以获取更多示例。大多数示例是Jupyter笔记本 - 要在Google Colab上启动它们(并在GPU支持!)上单击笔记本名称旁边的按钮。
笔记本 | 描述 |
---|---|
intro_to_thinc | 您需要知道的一切才能开始。使用配置文件,注册自定义功能并包装Pytorch,TensorFlow和MXNET模型,在MNIST数据上构图和培训模型。 |
transformers_tagger_bert | 如何使用Thinc, transformers 和Pytorch训练言论的标记器。从模型定义和配置到训练循环。 |
pos_tagger_basic_cnn | 实施和培训基本的CNN,用于无外部依赖性并使用不同级别的THINC配置系统的词性标记模型。 |
parallel_training_ray | 如何通过THINC和RAIN设置同步和异步参数服务器培训。 |
查看更多→
文档 | 描述 |
---|---|
介绍 | 您需要知道的一切。 |
概念与设计 | Thinc的概念模型及其工作原理。 |
定义和使用模型 | 如何撰写模型和更新状态。 |
配置系统 | THINC的配置系统和功能注册表。 |
集成Pytorch,TensorFlow和MXNET | 与机器学习框架的互操作性 |
层API | 权重层,转换,组合器和包装纸。 |
类型检查 | 键入检查您的模型定义等等。 |
模块 | 描述 |
---|---|
thinc.api | 面向用户的API。所有类和功能都应从这里导入。 |
thinc.types | 自定义类型和数据类别。 |
thinc.model | Model 类。所有THINC模型都是Model 的实例(不是子类)。 |
thinc.layers | 图层。每个层都在其自己的模块中实现。 |
thinc.shims | Pytorch,TensorFlow等实现的外部模型的接口。 |
thinc.loss | 计算损失的功能。 |
thinc.optimizers | 功能以创建优化器。目前支持“ Vanilla” SGD,Adam和Radam。 |
thinc.schedules | 发电机的不同速率,时间表,衰减或系列。 |
thinc.backends | 后端用于numpy 和cupy 。 |
thinc.config | 配置解析,验证和功能注册表系统。 |
thinc.util | 实用程序和辅助功能。 |
Thinc使用black
自动形成, flake8
for linting和mypy
进行类型检查。所有代码均与Python 3.6+兼容,并在可能的情况下具有类型提示。有关THINC自定义类型的更多详细信息,请参见类型参考。
从源头建造THINC要求需要安装requirements.txt
中列出的完整依赖项。您还需要一个编译器来构建C扩展名。
git clone https://github.com/explosion/thinc
cd thinc
python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
pip install --no-build-isolation .
或者,以可编辑模式安装:
pip install -r requirements.txt
pip install --no-build-isolation --editable .
或通过设置PYTHONPATH
:
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplace
Thinc带有广泛的测试套件。以下所有内容都应通过,并且不报告任何警告或错误:
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting
要查看测试覆盖范围,您可以运行python -m pytest thinc --cov=thinc
。我们的目标是100%的测试覆盖率。这并不意味着我们会精心编写每一行的测试 - 我们忽略了无关或难以测试的块,并确保测试执行所有代码路径。