  tokens needs to be upsampled again to match the length of the original character sequence (which is 2048). The
  details for this can be found in the paper.
Models:
google/canine-c: Pre-trained with autoregressive character loss,
    12-layer, 768-hidden, 12-heads, 121M parameters (size ~500 MB).
google/canine-s: Pre-trained with subword loss, 12-layer,
    768-hidden, 12-heads, 121M parameters (size ~500 MB).
This model was contributed by nielsr. The original code can be found here.
Example
CANINE works on raw characters, so it can be used without a tokenizer:
```python
from transformers import CanineModel
import torch
model = CanineModel.from_pretrained("google/canine-c")  # model pre-trained with autoregressive character loss
text = "hello world"
use Python's built-in ord() function to turn each character into its unicode code point id
