Thinc adalah perpustakaan pembelajaran mendalam yang ringan yang menawarkan API pemrograman fungsional yang elegan, tipe-checked, untuk menyusun model , dengan dukungan untuk lapisan yang didefinisikan dalam kerangka kerja lain seperti Pytorch, TensorFlow dan MXNet . Anda dapat menggunakan Thinc sebagai lapisan antarmuka, toolkit mandiri atau cara yang fleksibel untuk mengembangkan model baru. Versi Thinc sebelumnya telah berjalan diam -diam dalam produksi di ribuan perusahaan, melalui spacy dan ajaib. Kami menulis versi baru untuk memungkinkan pengguna menyusun, mengkonfigurasi, dan menggunakan model khusus yang dibangun dengan kerangka kerja favorit mereka.
mypy
. Thinc kompatibel dengan Python 3.6+ dan berjalan di Linux , MacOS dan Windows . Rilis terbaru dengan roda biner tersedia dari PIP. Sebelum Anda menginstal Thinc dan dependensinya, pastikan pip
, setuptools
, dan wheel
Anda terkini. Untuk rilis terbaru, PIP 19.3 atau yang lebih baru direkomendasikan.
pip install -U pip setuptools wheel
pip install thinc
Lihat dokumen instalasi yang diperluas untuk detail tentang dependensi opsional untuk backend dan GPU yang berbeda. Anda mungkin juga ingin mengatur pemeriksaan jenis statis untuk memanfaatkan sistem jenis Thinc.
️ Jika Anda telah menginstal Pytorch dan Anda menggunakan Python 3.7+, hapus instalan paketdataclasses
denganpip uninstall dataclasses
, karena mungkin telah diinstal oleh Pytorch dan tidak kompatibel dengan Python 3.7+.
Juga lihat Direktori /examples
Dokumentasi dan Penggunaan untuk lebih banyak contoh. Sebagian besar contoh adalah Jupyter Notebooks - untuk meluncurkannya di Google Colab (dengan dukungan GPU!) Klik tombol di sebelah nama notebook.
Buku catatan | Keterangan |
---|---|
intro_to_thinc | Semua yang perlu Anda ketahui untuk memulai. Menyusun dan melatih model pada data MNIST, menggunakan file konfigurasi, mendaftarkan fungsi khusus dan membungkus model Pytorch, TensorFlow dan MXNet. |
transformers_tagger_bert | Cara menggunakan Thinc, transformers dan Pytorch untuk melatih tagger bagian-of-speech. Dari definisi model dan konfigurasi ke loop pelatihan. |
pos_tagger_basic_cnn | Menerapkan dan melatih CNN dasar untuk model penandaan sebagian tanpa dependensi eksternal dan menggunakan berbagai tingkat sistem konfigurasi Thinc. |
parallel_training_ray | Cara mengatur pelatihan server parameter sinkron dan asinkron dengan Thinc dan Ray. |
Lihat lebih banyak →
Dokumentasi | Keterangan |
---|---|
Perkenalan | Semua yang perlu Anda ketahui. |
Konsep & Desain | Model konseptual Thinc dan cara kerjanya. |
Mendefinisikan dan menggunakan model | Cara menyusun model dan memperbarui status. |
Sistem Konfigurasi | Sistem konfigurasi dan registri fungsi Thinc. |
Mengintegrasikan Pytorch, TensorFlow & MXNet | Interoperabilitas dengan kerangka pembelajaran mesin |
Lapisan API | Berat lapisan, transformasi, kombinator dan pembungkus. |
Ketik Pemeriksaan | Jenis periksa definisi model Anda dan banyak lagi. |
Modul | Keterangan |
---|---|
thinc.api | API yang menghadap pengguna. Semua kelas dan fungsi harus diimpor dari sini. |
thinc.types | Jenis dan Dataclasses Kustom. |
thinc.model | Kelas Model . Semua model thinc adalah contoh (bukan subclass) Model . |
thinc.layers | Lapisan. Setiap lapisan diimplementasikan dalam modulnya sendiri. |
thinc.shims | Antarmuka untuk model eksternal yang diimplementasikan di Pytorch, TensorFlow dll. |
thinc.loss | Berfungsi untuk menghitung kerugian. |
thinc.optimizers | Berfungsi untuk membuat pengoptimal. Saat ini mendukung "Vanilla" SGD, Adam dan Radam. |
thinc.schedules | Generator untuk tingkat, jadwal, peluruhan atau seri yang berbeda. |
thinc.backends | Backends untuk numpy dan cupy . |
thinc.config | Konfigurasi parsing dan validasi dan sistem registri fungsi. |
thinc.util | Fungsi Utilitas dan Pembantu. |
Thinc menggunakan black
untuk format otomatis, flake8
untuk berbaris dan mypy
untuk memeriksa jenis. Semua kode ditulis kompatibel dengan Python 3.6+ , dengan petunjuk jenis sedapat mungkin. Lihat referensi tipe untuk detail lebih lanjut tentang tipe khusus Thinc.
Membangun thinc dari sumber membutuhkan dependensi penuh yang tercantum dalam requirements.txt
untuk diinstal. Anda juga akan membutuhkan kompiler untuk membangun ekstensi 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 .
Atau, instal dalam mode yang dapat diedit:
pip install -r requirements.txt
pip install --no-build-isolation --editable .
Atau dengan mengatur PYTHONPATH
:
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplace
Thinc hadir dengan suite tes yang luas. Yang berikut ini harus dilewati dan tidak melaporkan peringatan atau kesalahan apa pun:
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting
Untuk melihat cakupan tes, Anda dapat menjalankan python -m pytest thinc --cov=thinc
. Kami bertujuan untuk cakupan tes 100%. Ini tidak berarti bahwa kami dengan cermat menulis tes untuk setiap baris - kami mengabaikan blok yang tidak relevan atau sulit untuk diuji dan memastikan bahwa tes menjalankan semua jalur kode.