diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-10 08:54:31 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 08:54:31 +0000 |
| commit | 36c7fc604ab17dc6972caea778ac266b5b0fce21 (patch) | |
| tree | f508a871a5573925cb9f7e8a9144d14c19c1f611 | |
| parent | e31dcd7791e426b6f32492e8212f50f611ab1b95 (diff) | |
automatic import of python-thinc
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-thinc.spec | 558 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 560 insertions, 0 deletions
@@ -0,0 +1 @@ +/thinc-8.1.9.tar.gz diff --git a/python-thinc.spec b/python-thinc.spec new file mode 100644 index 0000000..f93bf18 --- /dev/null +++ b/python-thinc.spec @@ -0,0 +1,558 @@ +%global _empty_manifest_terminate_build 0 +Name: python-thinc +Version: 8.1.9 +Release: 1 +Summary: A refreshing functional take on deep learning, compatible with your favorite libraries +License: MIT +URL: https://github.com/explosion/thinc +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/31/4d/7c07727e1d4f08e307c367c6574baf5f44fd5c4e1dfb06ea8606d047c02a/thinc-8.1.9.tar.gz + +Requires: python3-blis +Requires: python3-murmurhash +Requires: python3-cymem +Requires: python3-preshed +Requires: python3-wasabi +Requires: python3-srsly +Requires: python3-catalogue +Requires: python3-confection +Requires: python3-setuptools +Requires: python3-numpy +Requires: python3-pydantic +Requires: python3-packaging +Requires: python3-dataclasses +Requires: python3-contextvars +Requires: python3-typing-extensions +Requires: python3-cupy +Requires: python3-cupy-wheel +Requires: python3-cupy-cuda100 +Requires: python3-cupy-cuda101 +Requires: python3-cupy-cuda102 +Requires: python3-cupy-cuda110 +Requires: python3-cupy-cuda111 +Requires: python3-cupy-cuda112 +Requires: python3-cupy-cuda113 +Requires: python3-cupy-cuda114 +Requires: python3-cupy-cuda115 +Requires: python3-cupy-cuda116 +Requires: python3-cupy-cuda117 +Requires: python3-cupy-cuda11x +Requires: python3-cupy-cuda80 +Requires: python3-cupy-cuda90 +Requires: python3-cupy-cuda91 +Requires: python3-cupy-cuda92 +Requires: python3-ml-datasets +Requires: python3-mxnet +Requires: python3-tensorflow +Requires: python3-torch + +%description +<a href="https://explosion.ai"><img src="https://explosion.ai/assets/img/logo.svg" width="125" height="125" align="right" /></a> + +# Thinc: A refreshing functional take on deep learning, compatible with your favorite libraries + +### From the makers of [spaCy](https://spacy.io) and [Prodigy](https://prodi.gy) + +[Thinc](https://thinc.ai) is a **lightweight deep learning library** that offers an elegant, +type-checked, functional-programming API for **composing models**, with support +for layers defined in other frameworks such as **PyTorch, TensorFlow and MXNet**. You +can use Thinc as an interface layer, a standalone toolkit or a flexible way to +develop new models. Previous versions of Thinc have been running quietly in +production in thousands of companies, via both [spaCy](https://spacy.io) and +[Prodigy](https://prodi.gy). We wrote the new version to let users **compose, +configure and deploy custom models** built with their favorite framework. + +[](https://dev.azure.com/explosion-ai/public/_build?definitionId=7) +[](https://github.com/explosion/thinc/releases) +[](https://pypi.python.org/pypi/thinc) +[](https://anaconda.org/conda-forge/thinc) +[](https://github.com/explosion/wheelwright/releases) +[](https://github.com/ambv/black) +[![Open demo in Colab][colab]][intro_to_thinc_colab] + +## 🔥 Features + +- **Type-check** your model definitions with custom types and [`mypy`](https://mypy.readthedocs.io/en/latest/) plugin. +- Wrap **PyTorch**, **TensorFlow** and **MXNet** models for use in your network. +- Concise **functional-programming** approach to model definition, using composition rather than inheritance. +- Optional custom infix notation via **operator overloading**. +- Integrated **config system** to describe trees of objects and hyperparameters. +- Choice of **extensible backends**. +- **[Read more →](https://thinc.ai/docs)** + +## 🚀 Quickstart + +Thinc is compatible with **Python 3.6+** and runs on **Linux**, +**macOS** and **Windows**. The latest releases with binary wheels are available from +[pip](https://pypi.python.org/pypi/thinc). Before you install Thinc and its +dependencies, make sure that your `pip`, `setuptools` and `wheel` are up to +date. For the most recent releases, pip 19.3 or newer is recommended. + +```bash +pip install -U pip setuptools wheel +pip install thinc +``` + +See the [extended installation docs](https://thinc.ai/docs/install#extended) for details on optional dependencies for different backends and GPU. You might also want to [set up static type checking](https://thinc.ai/docs/install#type-checking) to take advantage of Thinc's type system. + +> ⚠️ If you have installed PyTorch and you are using Python 3.7+, uninstall the +> package `dataclasses` with `pip uninstall dataclasses`, since it may have +> been installed by PyTorch and is incompatible with Python 3.7+. + +### 📓 Selected examples and notebooks + +Also see the [`/examples`](examples) directory and [usage documentation](https://thinc.ai/docs) for more examples. Most examples are Jupyter notebooks – to launch them on [Google Colab](https://colab.research.google.com) (with GPU support!) click on the button next to the notebook name. + +| Notebook | Description | +| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`intro_to_thinc`][intro_to_thinc]<br />[![Open in Colab][colab]][intro_to_thinc_colab] | Everything you need to know to get started. Composing and training a model on the MNIST data, using config files, registering custom functions and wrapping PyTorch, TensorFlow and MXNet models. | +| [`transformers_tagger_bert`][transformers_tagger_bert]<br />[![Open in Colab][colab]][transformers_tagger_bert_colab] | How to use Thinc, `transformers` and PyTorch to train a part-of-speech tagger. From model definition and config to the training loop. | +| [`pos_tagger_basic_cnn`][pos_tagger_basic_cnn]<br />[![Open in Colab][colab]][pos_tagger_basic_cnn_colab] | Implementing and training a basic CNN for part-of-speech tagging model without external dependencies and using different levels of Thinc's config system. | +| [`parallel_training_ray`][parallel_training_ray]<br />[![Open in Colab][colab]][parallel_training_ray_colab] | How to set up synchronous and asynchronous parameter server training with Thinc and [Ray](https://ray.readthedocs.io/en/latest/). | + +**[View more →](examples)** + +[colab]: https://gistcdn.githack.com/ines/dcf354aa71a7665ae19871d7fd14a4e0/raw/461fc1f61a7bc5860f943cd4b6bcfabb8c8906e7/colab-badge.svg +[intro_to_thinc]: examples/00_intro_to_thinc.ipynb +[intro_to_thinc_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/00_intro_to_thinc.ipynb +[transformers_tagger_bert]: examples/02_transformers_tagger_bert.ipynb +[transformers_tagger_bert_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/02_transformers_tagger_bert.ipynb +[pos_tagger_basic_cnn]: examples/03_pos_tagger_basic_cnn.ipynb +[pos_tagger_basic_cnn_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/03_pos_tagger_basic_cnn.ipynb +[parallel_training_ray]: examples/04_parallel_training_ray.ipynb +[parallel_training_ray_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/04_parallel_training_ray.ipynb + +### 📖 Documentation & usage guides + +| Documentation | Description | +| --------------------------------------------------------------------------------- | ----------------------------------------------------- | +| [Introduction](https://thinc.ai/docs) | Everything you need to know. | +| [Concept & Design](https://thinc.ai/docs/concept) | Thinc's conceptual model and how it works. | +| [Defining and using models](https://thinc.ai/docs/usage-models) | How to compose models and update state. | +| [Configuration system](https://thinc.ai/docs/usage-config) | Thinc's config system and function registry. | +| [Integrating PyTorch, TensorFlow & MXNet](https://thinc.ai/docs/usage-frameworks) | Interoperability with machine learning frameworks | +| [Layers API](https://thinc.ai/docs/api-layers) | Weights layers, transforms, combinators and wrappers. | +| [Type Checking](https://thinc.ai/docs/usage-type-checking) | Type-check your model definitions and more. | + +## 🗺 What's where + +| Module | Description | +| ----------------------------------------- | --------------------------------------------------------------------------------- | +| [`thinc.api`](thinc/api.py) | **User-facing API.** All classes and functions should be imported from here. | +| [`thinc.types`](thinc/types.py) | Custom [types and dataclasses](https://thinc.ai/docs/api-types). | +| [`thinc.model`](thinc/model.py) | The `Model` class. All Thinc models are an instance (not a subclass) of `Model`. | +| [`thinc.layers`](thinc/layers) | The layers. Each layer is implemented in its own module. | +| [`thinc.shims`](thinc/shims) | Interface for external models implemented in PyTorch, TensorFlow etc. | +| [`thinc.loss`](thinc/loss.py) | Functions to calculate losses. | +| [`thinc.optimizers`](thinc/optimizers.py) | Functions to create optimizers. Currently supports "vanilla" SGD, Adam and RAdam. | +| [`thinc.schedules`](thinc/schedules.py) | Generators for different rates, schedules, decays or series. | +| [`thinc.backends`](thinc/backends) | Backends for `numpy` and `cupy`. | +| [`thinc.config`](thinc/config.py) | Config parsing and validation and function registry system. | +| [`thinc.util`](thinc/util.py) | Utilities and helper functions. | + +## 🐍 Development notes + +Thinc uses [`black`](https://github.com/psf/black) for auto-formatting, [`flake8`](http://flake8.pycqa.org/en/latest/) for linting and [`mypy`](https://mypy.readthedocs.io/en/latest/) for type checking. All code is written compatible with **Python 3.6+**, with type hints wherever possible. See the [type reference](https://thinc.ai/docs/api-types) for more details on Thinc's custom types. + +### 👷♀️ Building Thinc from source + +Building Thinc from source requires the full dependencies listed in +[`requirements.txt`](requirements.txt) to be installed. You'll also need a +compiler to build the C extensions. + +```bash +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 . +``` + +Alternatively, install in editable mode: + +```bash +pip install -r requirements.txt +pip install --no-build-isolation --editable . +``` + +Or by setting `PYTHONPATH`: + +```bash +export PYTHONPATH=`pwd` +pip install -r requirements.txt +python setup.py build_ext --inplace +``` + +### 🚦 Running tests + +Thinc comes with an [extensive test suite](thinc/tests). The following should all pass and not report any warnings or errors: + +```bash +python -m pytest thinc # test suite +python -m mypy thinc # type checks +python -m flake8 thinc # linting +``` + +To view test coverage, you can run `python -m pytest thinc --cov=thinc`. We aim for a 100% test coverage. This doesn't mean that we meticulously write tests for every single line – we ignore blocks that are not relevant or difficult to test and make sure that the tests execute all code paths. + + +%package -n python3-thinc +Summary: A refreshing functional take on deep learning, compatible with your favorite libraries +Provides: python-thinc +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cffi +BuildRequires: gcc +BuildRequires: gdb +%description -n python3-thinc +<a href="https://explosion.ai"><img src="https://explosion.ai/assets/img/logo.svg" width="125" height="125" align="right" /></a> + +# Thinc: A refreshing functional take on deep learning, compatible with your favorite libraries + +### From the makers of [spaCy](https://spacy.io) and [Prodigy](https://prodi.gy) + +[Thinc](https://thinc.ai) is a **lightweight deep learning library** that offers an elegant, +type-checked, functional-programming API for **composing models**, with support +for layers defined in other frameworks such as **PyTorch, TensorFlow and MXNet**. You +can use Thinc as an interface layer, a standalone toolkit or a flexible way to +develop new models. Previous versions of Thinc have been running quietly in +production in thousands of companies, via both [spaCy](https://spacy.io) and +[Prodigy](https://prodi.gy). We wrote the new version to let users **compose, +configure and deploy custom models** built with their favorite framework. + +[](https://dev.azure.com/explosion-ai/public/_build?definitionId=7) +[](https://github.com/explosion/thinc/releases) +[](https://pypi.python.org/pypi/thinc) +[](https://anaconda.org/conda-forge/thinc) +[](https://github.com/explosion/wheelwright/releases) +[](https://github.com/ambv/black) +[![Open demo in Colab][colab]][intro_to_thinc_colab] + +## 🔥 Features + +- **Type-check** your model definitions with custom types and [`mypy`](https://mypy.readthedocs.io/en/latest/) plugin. +- Wrap **PyTorch**, **TensorFlow** and **MXNet** models for use in your network. +- Concise **functional-programming** approach to model definition, using composition rather than inheritance. +- Optional custom infix notation via **operator overloading**. +- Integrated **config system** to describe trees of objects and hyperparameters. +- Choice of **extensible backends**. +- **[Read more →](https://thinc.ai/docs)** + +## 🚀 Quickstart + +Thinc is compatible with **Python 3.6+** and runs on **Linux**, +**macOS** and **Windows**. The latest releases with binary wheels are available from +[pip](https://pypi.python.org/pypi/thinc). Before you install Thinc and its +dependencies, make sure that your `pip`, `setuptools` and `wheel` are up to +date. For the most recent releases, pip 19.3 or newer is recommended. + +```bash +pip install -U pip setuptools wheel +pip install thinc +``` + +See the [extended installation docs](https://thinc.ai/docs/install#extended) for details on optional dependencies for different backends and GPU. You might also want to [set up static type checking](https://thinc.ai/docs/install#type-checking) to take advantage of Thinc's type system. + +> ⚠️ If you have installed PyTorch and you are using Python 3.7+, uninstall the +> package `dataclasses` with `pip uninstall dataclasses`, since it may have +> been installed by PyTorch and is incompatible with Python 3.7+. + +### 📓 Selected examples and notebooks + +Also see the [`/examples`](examples) directory and [usage documentation](https://thinc.ai/docs) for more examples. Most examples are Jupyter notebooks – to launch them on [Google Colab](https://colab.research.google.com) (with GPU support!) click on the button next to the notebook name. + +| Notebook | Description | +| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`intro_to_thinc`][intro_to_thinc]<br />[![Open in Colab][colab]][intro_to_thinc_colab] | Everything you need to know to get started. Composing and training a model on the MNIST data, using config files, registering custom functions and wrapping PyTorch, TensorFlow and MXNet models. | +| [`transformers_tagger_bert`][transformers_tagger_bert]<br />[![Open in Colab][colab]][transformers_tagger_bert_colab] | How to use Thinc, `transformers` and PyTorch to train a part-of-speech tagger. From model definition and config to the training loop. | +| [`pos_tagger_basic_cnn`][pos_tagger_basic_cnn]<br />[![Open in Colab][colab]][pos_tagger_basic_cnn_colab] | Implementing and training a basic CNN for part-of-speech tagging model without external dependencies and using different levels of Thinc's config system. | +| [`parallel_training_ray`][parallel_training_ray]<br />[![Open in Colab][colab]][parallel_training_ray_colab] | How to set up synchronous and asynchronous parameter server training with Thinc and [Ray](https://ray.readthedocs.io/en/latest/). | + +**[View more →](examples)** + +[colab]: https://gistcdn.githack.com/ines/dcf354aa71a7665ae19871d7fd14a4e0/raw/461fc1f61a7bc5860f943cd4b6bcfabb8c8906e7/colab-badge.svg +[intro_to_thinc]: examples/00_intro_to_thinc.ipynb +[intro_to_thinc_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/00_intro_to_thinc.ipynb +[transformers_tagger_bert]: examples/02_transformers_tagger_bert.ipynb +[transformers_tagger_bert_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/02_transformers_tagger_bert.ipynb +[pos_tagger_basic_cnn]: examples/03_pos_tagger_basic_cnn.ipynb +[pos_tagger_basic_cnn_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/03_pos_tagger_basic_cnn.ipynb +[parallel_training_ray]: examples/04_parallel_training_ray.ipynb +[parallel_training_ray_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/04_parallel_training_ray.ipynb + +### 📖 Documentation & usage guides + +| Documentation | Description | +| --------------------------------------------------------------------------------- | ----------------------------------------------------- | +| [Introduction](https://thinc.ai/docs) | Everything you need to know. | +| [Concept & Design](https://thinc.ai/docs/concept) | Thinc's conceptual model and how it works. | +| [Defining and using models](https://thinc.ai/docs/usage-models) | How to compose models and update state. | +| [Configuration system](https://thinc.ai/docs/usage-config) | Thinc's config system and function registry. | +| [Integrating PyTorch, TensorFlow & MXNet](https://thinc.ai/docs/usage-frameworks) | Interoperability with machine learning frameworks | +| [Layers API](https://thinc.ai/docs/api-layers) | Weights layers, transforms, combinators and wrappers. | +| [Type Checking](https://thinc.ai/docs/usage-type-checking) | Type-check your model definitions and more. | + +## 🗺 What's where + +| Module | Description | +| ----------------------------------------- | --------------------------------------------------------------------------------- | +| [`thinc.api`](thinc/api.py) | **User-facing API.** All classes and functions should be imported from here. | +| [`thinc.types`](thinc/types.py) | Custom [types and dataclasses](https://thinc.ai/docs/api-types). | +| [`thinc.model`](thinc/model.py) | The `Model` class. All Thinc models are an instance (not a subclass) of `Model`. | +| [`thinc.layers`](thinc/layers) | The layers. Each layer is implemented in its own module. | +| [`thinc.shims`](thinc/shims) | Interface for external models implemented in PyTorch, TensorFlow etc. | +| [`thinc.loss`](thinc/loss.py) | Functions to calculate losses. | +| [`thinc.optimizers`](thinc/optimizers.py) | Functions to create optimizers. Currently supports "vanilla" SGD, Adam and RAdam. | +| [`thinc.schedules`](thinc/schedules.py) | Generators for different rates, schedules, decays or series. | +| [`thinc.backends`](thinc/backends) | Backends for `numpy` and `cupy`. | +| [`thinc.config`](thinc/config.py) | Config parsing and validation and function registry system. | +| [`thinc.util`](thinc/util.py) | Utilities and helper functions. | + +## 🐍 Development notes + +Thinc uses [`black`](https://github.com/psf/black) for auto-formatting, [`flake8`](http://flake8.pycqa.org/en/latest/) for linting and [`mypy`](https://mypy.readthedocs.io/en/latest/) for type checking. All code is written compatible with **Python 3.6+**, with type hints wherever possible. See the [type reference](https://thinc.ai/docs/api-types) for more details on Thinc's custom types. + +### 👷♀️ Building Thinc from source + +Building Thinc from source requires the full dependencies listed in +[`requirements.txt`](requirements.txt) to be installed. You'll also need a +compiler to build the C extensions. + +```bash +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 . +``` + +Alternatively, install in editable mode: + +```bash +pip install -r requirements.txt +pip install --no-build-isolation --editable . +``` + +Or by setting `PYTHONPATH`: + +```bash +export PYTHONPATH=`pwd` +pip install -r requirements.txt +python setup.py build_ext --inplace +``` + +### 🚦 Running tests + +Thinc comes with an [extensive test suite](thinc/tests). The following should all pass and not report any warnings or errors: + +```bash +python -m pytest thinc # test suite +python -m mypy thinc # type checks +python -m flake8 thinc # linting +``` + +To view test coverage, you can run `python -m pytest thinc --cov=thinc`. We aim for a 100% test coverage. This doesn't mean that we meticulously write tests for every single line – we ignore blocks that are not relevant or difficult to test and make sure that the tests execute all code paths. + + +%package help +Summary: Development documents and examples for thinc +Provides: python3-thinc-doc +%description help +<a href="https://explosion.ai"><img src="https://explosion.ai/assets/img/logo.svg" width="125" height="125" align="right" /></a> + +# Thinc: A refreshing functional take on deep learning, compatible with your favorite libraries + +### From the makers of [spaCy](https://spacy.io) and [Prodigy](https://prodi.gy) + +[Thinc](https://thinc.ai) is a **lightweight deep learning library** that offers an elegant, +type-checked, functional-programming API for **composing models**, with support +for layers defined in other frameworks such as **PyTorch, TensorFlow and MXNet**. You +can use Thinc as an interface layer, a standalone toolkit or a flexible way to +develop new models. Previous versions of Thinc have been running quietly in +production in thousands of companies, via both [spaCy](https://spacy.io) and +[Prodigy](https://prodi.gy). We wrote the new version to let users **compose, +configure and deploy custom models** built with their favorite framework. + +[](https://dev.azure.com/explosion-ai/public/_build?definitionId=7) +[](https://github.com/explosion/thinc/releases) +[](https://pypi.python.org/pypi/thinc) +[](https://anaconda.org/conda-forge/thinc) +[](https://github.com/explosion/wheelwright/releases) +[](https://github.com/ambv/black) +[![Open demo in Colab][colab]][intro_to_thinc_colab] + +## 🔥 Features + +- **Type-check** your model definitions with custom types and [`mypy`](https://mypy.readthedocs.io/en/latest/) plugin. +- Wrap **PyTorch**, **TensorFlow** and **MXNet** models for use in your network. +- Concise **functional-programming** approach to model definition, using composition rather than inheritance. +- Optional custom infix notation via **operator overloading**. +- Integrated **config system** to describe trees of objects and hyperparameters. +- Choice of **extensible backends**. +- **[Read more →](https://thinc.ai/docs)** + +## 🚀 Quickstart + +Thinc is compatible with **Python 3.6+** and runs on **Linux**, +**macOS** and **Windows**. The latest releases with binary wheels are available from +[pip](https://pypi.python.org/pypi/thinc). Before you install Thinc and its +dependencies, make sure that your `pip`, `setuptools` and `wheel` are up to +date. For the most recent releases, pip 19.3 or newer is recommended. + +```bash +pip install -U pip setuptools wheel +pip install thinc +``` + +See the [extended installation docs](https://thinc.ai/docs/install#extended) for details on optional dependencies for different backends and GPU. You might also want to [set up static type checking](https://thinc.ai/docs/install#type-checking) to take advantage of Thinc's type system. + +> ⚠️ If you have installed PyTorch and you are using Python 3.7+, uninstall the +> package `dataclasses` with `pip uninstall dataclasses`, since it may have +> been installed by PyTorch and is incompatible with Python 3.7+. + +### 📓 Selected examples and notebooks + +Also see the [`/examples`](examples) directory and [usage documentation](https://thinc.ai/docs) for more examples. Most examples are Jupyter notebooks – to launch them on [Google Colab](https://colab.research.google.com) (with GPU support!) click on the button next to the notebook name. + +| Notebook | Description | +| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`intro_to_thinc`][intro_to_thinc]<br />[![Open in Colab][colab]][intro_to_thinc_colab] | Everything you need to know to get started. Composing and training a model on the MNIST data, using config files, registering custom functions and wrapping PyTorch, TensorFlow and MXNet models. | +| [`transformers_tagger_bert`][transformers_tagger_bert]<br />[![Open in Colab][colab]][transformers_tagger_bert_colab] | How to use Thinc, `transformers` and PyTorch to train a part-of-speech tagger. From model definition and config to the training loop. | +| [`pos_tagger_basic_cnn`][pos_tagger_basic_cnn]<br />[![Open in Colab][colab]][pos_tagger_basic_cnn_colab] | Implementing and training a basic CNN for part-of-speech tagging model without external dependencies and using different levels of Thinc's config system. | +| [`parallel_training_ray`][parallel_training_ray]<br />[![Open in Colab][colab]][parallel_training_ray_colab] | How to set up synchronous and asynchronous parameter server training with Thinc and [Ray](https://ray.readthedocs.io/en/latest/). | + +**[View more →](examples)** + +[colab]: https://gistcdn.githack.com/ines/dcf354aa71a7665ae19871d7fd14a4e0/raw/461fc1f61a7bc5860f943cd4b6bcfabb8c8906e7/colab-badge.svg +[intro_to_thinc]: examples/00_intro_to_thinc.ipynb +[intro_to_thinc_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/00_intro_to_thinc.ipynb +[transformers_tagger_bert]: examples/02_transformers_tagger_bert.ipynb +[transformers_tagger_bert_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/02_transformers_tagger_bert.ipynb +[pos_tagger_basic_cnn]: examples/03_pos_tagger_basic_cnn.ipynb +[pos_tagger_basic_cnn_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/03_pos_tagger_basic_cnn.ipynb +[parallel_training_ray]: examples/04_parallel_training_ray.ipynb +[parallel_training_ray_colab]: https://colab.research.google.com/github/explosion/thinc/blob/master/examples/04_parallel_training_ray.ipynb + +### 📖 Documentation & usage guides + +| Documentation | Description | +| --------------------------------------------------------------------------------- | ----------------------------------------------------- | +| [Introduction](https://thinc.ai/docs) | Everything you need to know. | +| [Concept & Design](https://thinc.ai/docs/concept) | Thinc's conceptual model and how it works. | +| [Defining and using models](https://thinc.ai/docs/usage-models) | How to compose models and update state. | +| [Configuration system](https://thinc.ai/docs/usage-config) | Thinc's config system and function registry. | +| [Integrating PyTorch, TensorFlow & MXNet](https://thinc.ai/docs/usage-frameworks) | Interoperability with machine learning frameworks | +| [Layers API](https://thinc.ai/docs/api-layers) | Weights layers, transforms, combinators and wrappers. | +| [Type Checking](https://thinc.ai/docs/usage-type-checking) | Type-check your model definitions and more. | + +## 🗺 What's where + +| Module | Description | +| ----------------------------------------- | --------------------------------------------------------------------------------- | +| [`thinc.api`](thinc/api.py) | **User-facing API.** All classes and functions should be imported from here. | +| [`thinc.types`](thinc/types.py) | Custom [types and dataclasses](https://thinc.ai/docs/api-types). | +| [`thinc.model`](thinc/model.py) | The `Model` class. All Thinc models are an instance (not a subclass) of `Model`. | +| [`thinc.layers`](thinc/layers) | The layers. Each layer is implemented in its own module. | +| [`thinc.shims`](thinc/shims) | Interface for external models implemented in PyTorch, TensorFlow etc. | +| [`thinc.loss`](thinc/loss.py) | Functions to calculate losses. | +| [`thinc.optimizers`](thinc/optimizers.py) | Functions to create optimizers. Currently supports "vanilla" SGD, Adam and RAdam. | +| [`thinc.schedules`](thinc/schedules.py) | Generators for different rates, schedules, decays or series. | +| [`thinc.backends`](thinc/backends) | Backends for `numpy` and `cupy`. | +| [`thinc.config`](thinc/config.py) | Config parsing and validation and function registry system. | +| [`thinc.util`](thinc/util.py) | Utilities and helper functions. | + +## 🐍 Development notes + +Thinc uses [`black`](https://github.com/psf/black) for auto-formatting, [`flake8`](http://flake8.pycqa.org/en/latest/) for linting and [`mypy`](https://mypy.readthedocs.io/en/latest/) for type checking. All code is written compatible with **Python 3.6+**, with type hints wherever possible. See the [type reference](https://thinc.ai/docs/api-types) for more details on Thinc's custom types. + +### 👷♀️ Building Thinc from source + +Building Thinc from source requires the full dependencies listed in +[`requirements.txt`](requirements.txt) to be installed. You'll also need a +compiler to build the C extensions. + +```bash +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 . +``` + +Alternatively, install in editable mode: + +```bash +pip install -r requirements.txt +pip install --no-build-isolation --editable . +``` + +Or by setting `PYTHONPATH`: + +```bash +export PYTHONPATH=`pwd` +pip install -r requirements.txt +python setup.py build_ext --inplace +``` + +### 🚦 Running tests + +Thinc comes with an [extensive test suite](thinc/tests). The following should all pass and not report any warnings or errors: + +```bash +python -m pytest thinc # test suite +python -m mypy thinc # type checks +python -m flake8 thinc # linting +``` + +To view test coverage, you can run `python -m pytest thinc --cov=thinc`. We aim for a 100% test coverage. This doesn't mean that we meticulously write tests for every single line – we ignore blocks that are not relevant or difficult to test and make sure that the tests execute all code paths. + + +%prep +%autosetup -n thinc-8.1.9 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-thinc -f filelist.lst +%dir %{python3_sitearch}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 8.1.9-1 +- Package Spec generated @@ -0,0 +1 @@ +d14cf6f7720196fad490d709d744adfd thinc-8.1.9.tar.gz |
