对深度学习的一次清新功能化尝试,兼容您喜欢的库
项目描述
Thinc:对深度学习的清新功能化处理,与您喜欢的库兼容
由spaCy(https://spacy.io)和Prodigy(https://prodi.gy)的制作者开发
Thinc 是一个轻量级的深度学习库,它提供了一个优雅的、类型检查的功能性编程API,用于组合模型,并支持使用 PyTorch、TensorFlow 和 MXNet 等其他框架定义的层。您可以将 Thinc 用作接口层、独立的工具包或以灵活的方式开发新模型。Thinc 的早期版本已经在成千上家公司中默默运行在生产环境中,通过 spaCy 和 Prodigy。我们编写了新版本,以便让用户能够用他们喜欢的框架构建的模型来组合、配置和部署自定义模型。
🔥 特性
- 类型检查 您的模型定义,并使用自定义类型和
mypy
插件。 - 包装 PyTorch、TensorFlow 和 MXNet 模型以供网络使用。
- 模型定义的简洁 功能性编程 方法,使用组合而非继承。
- 可选的通过 运算符重载 的自定义中缀表示法。
- 集成 配置系统 以描述对象的树和超参数。
- 可扩展后端的选项。
- 阅读更多 →
🚀 快速入门
Thinc 与 Python 3.6+ 兼容,并在 Linux、macOS 和 Windows 上运行。最新的带有二进制轮子的发布版本可通过 pip 获得。在安装 Thinc 和其依赖项之前,请确保您的 pip
、setuptools
和 wheel
都是最新版本。对于最新版本,建议使用 pip 19.3 或更高版本。
pip install -U pip setuptools wheel
pip install thinc
有关不同后端和 GPU 的可选依赖项的详细信息,请参阅 扩展安装文档。您可能还希望 设置静态类型检查 以利用 Thinc 的类型系统。
⚠️ 如果您已安装 PyTorch 并且您正在使用 Python 3.7+,请使用
pip uninstall dataclasses
卸载包dataclasses
,因为它可能已被 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 和 Ray 设置同步和异步参数服务器训练。 |
📖 文档和用法指南
文档 | 描述 |
---|---|
简介 | 您需要了解的一切。 |
概念与设计 | 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
进行代码检查和mypy
进行类型检查。所有代码均与Python 3.6+
兼容,尽可能使用类型提示。有关Thinc自定义类型的更多详细信息,请参阅类型参考。
👷♀️ 从源代码构建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%的测试覆盖率。这并不意味着我们为每一行代码都精心编写测试——我们忽略了不相关或难以测试的块,并确保测试执行所有代码路径。
项目详细信息
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
thinc-9.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 21fae2986d7777a6f050b9046dc9eab11852f1c9a997dcc9032f3ecc22784a4a |
|
MD5 | e0a495831348420e031f1c7dd986c22a |
|
BLAKE2b-256 | 32a192a63536ee9742cfb7b3f4f1c30640f6964739cf33c9313d5c3401e168d6 |
thinc-9.1.1-cp312-cp312-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d4c30a139df83f076b79b8701ab5544ef49d683696d1a71cc5adcf2d24d73528 |
|
MD5 | 741592590c7e982148c03796f89d0860 |
|
BLAKE2b-256 | 52fe9e735346fe4aaabfd48a7ef846feb3e5e87e99c5bd0dfd0eabacb527b144 |
thinc-9.1.1-cp312-cp312-musllinux_1_2_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 34fe74c3d6682983fcbff49634f77c353e48fa6fd4b9e0fbd4075cec583523b5 |
|
MD5 | 4eef57b5e37a984dbe548c9d6f056f6b |
|
BLAKE2b-256 | d6e0c5953591c58c45a8ad432a90175b63a86ff750a5d4f10e67df533fc90ebc |
thinc-9.1.1-cp312-cp312-musllinux_1_2_i686.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e962f139b3e353d58ef87a861ba7e890bb29655c317bd225b568b97272a4b99 |
|
MD5 | a0d712ed7b71aee6a93aa4b26aeba7ec |
|
BLAKE2b-256 | 455c8de8576c0af0caeca2d72421ec392416ff7347da9a009e023c31aceae480 |
thinc-9.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a540ce68287939d5fcbc25e67c18d0e8b5e9f700e7075c28c2e40aa51496d54f |
|
MD5 | a642bbf2dac476a4084d4d41dcb36426 |
|
BLAKE2b-256 | 45d5eda88b213ec9906f31eb965a090167dfe36b46eb8e4e2131ba42ae3e684f |
thinc-9.1.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2b47bd3af0f68f52393a6ae76d28718260533fcf9f5e010a94a302e67611841c |
|
MD5 | aafbff39e645a3c1ff149fc3919a60f7 |
|
BLAKE2b-256 | d95083a75906d6ed285e1b2eb2d1cdafac78e9fc7fb6de4f35ea5d0ffd699de6 |
thinc-9.1.1-cp312-cp312-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e77f0877c567103601e58178bb0d24d227a081380e25ed8ab4d2f2f7438d6d6a |
|
MD5 | b29bca50243d24006d541e8ad03b9994 |
|
BLAKE2b-256 | b8c74300838b6314ea727d789313e40bbef2cf307c9bab45a2cee2b5bda2cc44 |
哈希值 for thinc-9.1.1-cp312-cp312-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1f9844a881f5892a23e23f0a112be3a6b0feedd4ac928f96ce32c6784fcaeb8 |
|
MD5 | 10a613e949d28960d99d3cf9beedc7f2 |
|
BLAKE2b-256 | 9c0e9f564bcd7b6498dfb3b11019cba4f8e86419043248e10d20640ceac16e2c |
哈希值 for thinc-9.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9c88e10e75607869425ed11d29c9a0754c5a8ed44048ea7bda00fb49a2d287a0 |
|
MD5 | b070ecfa57a26e5b7faace9be784c6ca |
|
BLAKE2b-256 | 54489c61160a4869dbaf4fb4f359cf23f21045ba1bb22626b6bfb511ada80c44 |
哈希值 for thinc-9.1.1-cp311-cp311-musllinux_1_2_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b03c7f88363bbbcef2a36b8da261c1ad69972ffe2f6c2aaf1accef5c2d749d1a |
|
MD5 | 934eb19a67bd64f42d0e6a283f72c111 |
|
BLAKE2b-256 | 391ec2ddff11c470acc922cf4aeb25c0532351df1a34307163cf456aa97d55ed |
哈希值 for thinc-9.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 45379a56d569f0a56a90d15fded5e46c8b1abb0a1b2617450194f06a55abf827 |
|
MD5 | 9cde30452b389f950109547494f639e9 |
|
BLAKE2b-256 | 9bc626e361be492ea8e98f687fd9b4536677211f837687f693d595766422db13 |
哈希值 for thinc-9.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cf25ac6bf36bc8f46b7a1234a2be74469fe54fa6d1421fbb9deb968614ab03a6 |
|
MD5 | 08a3e2df86e728e3210451510cdf906f |
|
BLAKE2b-256 | c58aee17b44923d624aa4b5c7e1c3ba6f515d3c873c92ca4b7c340645c632720 |
哈希值 for thinc-9.1.1-cp311-cp311-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 19928387bf7e80e2f808fa02c268b4e593d118f4722b3c1df1d7f53ef79d410c |
|
MD5 | 5198972c44adb4d0ef2e4ae1070a636e |
|
BLAKE2b-256 | b393d0ac7fe8ff682b95ee90d0bc03a87bf8e47b319c0fb23ae6b015c3a8e7ea |
哈希值 for thinc-9.1.1-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fc24dadedfe2eeaa1c6a4a1b08d30a4fa81185527dfa5fdf602e334b23bc0911 |
|
MD5 | bd2e6cc42c21e22ff234040f04cbb8be |
|
BLAKE2b-256 | 402b53b77cc24348be7d0993c2aea0f7feab9a87156381f1578560add6c50331 |
哈希值 for thinc-9.1.1-cp310-cp310-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 754fb8c6d3f9f7ba9503a8969f007d3a171d49989aca5a435511f06c5e1171a0 |
|
MD5 | c94d0c7017717aa46e68b43fa2323814 |
|
BLAKE2b-256 | 6ab9a84fb5224a13c4f6936139114ba8fe73e6e03167f9a87eacd4d4ee1a5232 |
哈希值 for thinc-9.1.1-cp310-cp310-musllinux_1_2_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7bd43399c9f3b6f5ec2e429a96cb7e2320c7f8db4a358715ba177b5a1325f0c7 |
|
MD5 | 1ba7bd15cc6a6b1659674cb163b1b0a3 |
|
BLAKE2b-256 | 065f2f5cd5592bf59dc421e8d2b749a342cba0c0c2ea8a7aa50ca74b035f8c90 |
哈希值 for thinc-9.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4fa86a66854851ff51f7f5d32afe4c284582fc840009f11b9070f6aaf9455006 |
|
MD5 | 743c93749f15ab8734e679dc83ee7434 |
|
BLAKE2b-256 | d8d103abf631d7925c9c9888dd0d3321fb0a945d560fddb53817287041f0265c |
哈希值 for thinc-9.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7264dedc732541fd2783055072580b0eb06aecd9c102de639f2f53b6078127d1 |
|
MD5 | 02c2e55d8e3ae13afda3cb4109bc7210 |
|
BLAKE2b-256 | 0529c2bef48513ab469fb7023f40b02e13d639de0e5b4beafeb828745aad5d4e |
哈希值 for thinc-9.1.1-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 082d3804a3dc5091bc3c980f338b37d4d848454f018b42be7dec7c042847c3c4 |
|
MD5 | 808bb10171b129c01a53a20d50566667 |
|
BLAKE2b-256 | 304f5d463760011154bf595aedb6adabf6c7794471d2834b65d66adf585025aa |
哈希值 for thinc-9.1.1-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9c4a19eab36f246f49c3fd662a4442e07839a3f93a34b48867c9857587f9c518 |
|
MD5 | b16116d90e046116652438b5495b5e1d |
|
BLAKE2b-256 | 28a04532a0b9c4947ede46a6d45bee040fac6db7bc077c5ffd9629ae50c511e0 |
哈希值 for thinc-9.1.1-cp39-cp39-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d3f16766f25cdf11fb136688d52df5d4698c30532cf42812192186b476833a33 |
|
MD5 | 020efdf870b70d1a415b7e15b00acc79 |
|
BLAKE2b-256 | 7d682e0378c0b427c282e5b62b8b7d6dfe3e5cdb18abe8dead5f33f40feba550 |
哈希值 for thinc-9.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8a458c2ce71d74615acf491b717342821133eca4a36d172a8c048b46a92566bd |
|
MD5 | 59c3b08809b361cd502135b3ecd8db3b |
|
BLAKE2b-256 | 98165f3a5189d8f9e2c4828589dbdaa2c2f1b0a6ad3f9861dd47958aa6715364 |
哈希值 for thinc-9.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 09c15bae71d5ee215c7b5240eee859a16713de47e9250879a207f043e0c299b3 |
|
MD5 | a3e358a3a1f89714153d611c5389741f |
|
BLAKE2b-256 | d84f6fa24c9cfc8458c6a79ed35b342ae8c916121fce7e46683fb3d7091b51ee |