PyTorch CRF with N-best decoding
Project description
PyTorch CRF with N-best Decoding
Implementation of Conditional Random Fields (CRF) in PyTorch 1.0. It supports top-N most probable paths decoding.
The package is based on pytorch-crf with only the following differences
- Method
_viterbi_decode
that decodes the most probable path get optimized. Running time gets reduced to 50% or less with batch size 15+ and sequence length 20+ - The class now supports decoding top-N most probable paths through the implementation of the method
_viterbi_decode_nbest
Requirements
- Python 3 (>= 3.6)
- PyTorch (>= 1.0)
Installation
pip install pytorchcrf
Examples
>>> import torch
>>> from pytorchcrf import CRF
>>> num_tags = 5 # number of tags is 5
>>> model = CRF(num_tags)
>>> seq_length = 3 # maximum sequence length in a batch
>>> batch_size = 2 # number of samples in the batch
>>> emissions = torch.randn(seq_length, batch_size, num_tags)
# Computing log likelihood
>>> tags = torch.tensor([[2, 3], [1, 0], [3, 4]], dtype=torch.long) # (seq_length, batch_size)
>>> model(emissions, tags)
# Decoding
>>> model.decode(emissions) # decoding the best path
>>> model.decode(emissions, nbest=3) # decoding the top 3 paths
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pytorchcrf-1.2.0.tar.gz
(6.4 kB
view hashes)
Built Distribution
Close
Hashes for pytorchcrf-1.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fad8a8dba816a9a76a74c6cfc535aab226666893797e2842f2d978562064124 |
|
MD5 | 3046f7ec02b6496c6d11f5ab9d6434c8 |
|
BLAKE2b-256 | b33a85ae7d34b43d833c7d1a17200a15afa4d506b5995b93604f425250ae9d06 |