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%的測試覆蓋率。這並不意味著我們會精心編寫每一行的測試 - 我們忽略了無關或難以測試的塊,並確保測試執行所有代碼路徑。