Skip to content

RuntimeError: from_dlpack received an invalid capsule. #13938

@john-a-m

Description

@john-a-m

How to reproduce the behaviour

I'm trying to run python -m spacy train config.cfg --output ./output --paths.train ./train.spacy --paths.dev ./dev.spacy --gpu-id 0 and as soon as I see

ℹ Saving to output directory: output
ℹ Using GPU: 0

=========================== Initializing pipeline ===========================
Some weights of RobertaModel were not initialized from the model checkpoint at roberta-base and are newly initialized: ['roberta.pooler.dense.bias', 'roberta.pooler.dense.weight']
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
✔ Initialized pipeline

============================= Training pipeline =============================
ℹ Pipeline: ['transformer', 'ner']
ℹ Initial learn rate: 0.0

I get the stacktrace

C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\thinc\util.py:395: VisibleDeprecationWarning: This function is deprecated and will be removed in a future release. Use the cupy.from_dlpack() array constructor instead.  dlpack_tensor = xp_tensor.toDlpack()  # type: ignore⚠ Aborting and saving the final best model. Encountered exception:
RuntimeError('from_dlpack received an invalid capsule. Note that DLTensor
capsules can be consumed only once, so you might have already constructed a
tensor from it once.')
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy\__main__.py", line 4, in <module>
    setup_cli()
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy\cli\_util.py", line 87, in setup_cli
    command(prog_name=COMMAND)
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1485, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\typer\core.py", line 795, in main
    return _main(
           ^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\typer\core.py", line 188, in _main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1873, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1269, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 824, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\typer\main.py", line 1514, in wrapper
    return callback(**use_params)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy\cli\train.py", line 54, in train_cli
    train(config_path, output_path, use_gpu=use_gpu, overrides=overrides)
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy\cli\train.py", line 84, in train
    train_nlp(nlp, output_path, use_gpu=use_gpu, stdout=sys.stdout, stderr=sys.stderr)
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy\training\loop.py", line 135, in train
    raise e
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy\training\loop.py", line 118, in train
    for batch, info, is_best_checkpoint in training_step_iterator:
                                           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy\training\loop.py", line 220, in train_while_improving
    nlp.update(
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy\language.py", line 1197, in update    proc.update(examples, sgd=None, losses=losses, **component_cfg[name])  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "spacy/pipeline/transition_parser.pyx", line 439, in spacy.pipeline.transition_parser.Parser.update
    backprop_tok2vec(golds)
  File "spacy/ml/parser_model.pyx", line 334, in spacy.ml.parser_model.ParserStepModel.finish_steps
    self.bp_tokvecs(d_tokvecs[:-1])
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\thinc\layers\chain.py", line 60, in backprop
    dX = callback(dY)
         ^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\thinc\layers\chain.py", line 60, in backprop
    dX = callback(dY)
         ^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy_transformers\layers\listener.py", line 41, in backprop_and_clear
    result = self._backprop(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy_transformers\pipeline_component.py", line 316, in backprop
    d_trf_full = trf_full.unsplit_by_doc(d_tensors)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\spacy_transformers\data_classes.py", line 315, in unsplit_by_doc
    model_output[f"output_{i}"] = xp2torch(xp.vstack(x))
                                  ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\thinc\util.py", line 396, in xp2torch
    torch_tensor = torch.utils.dlpack.from_dlpack(dlpack_tensor)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\john\AppData\Local\Programs\Python\Python312\Lib\site-packages\torch\utils\dlpack.py", line 121, in from_dlpack
    return _from_dlpack(dlpack)
           ^^^^^^^^^^^^^^^^^^^^
RuntimeError: from_dlpack received an invalid capsule. Note that DLTensor capsules can be consumed only once, so you might have already constructed a tensor from it once.

I've found a few other issues that suggest this is a version mismatch between pytorch and numpy, however I can't seem to find the winning version combination. Any ideas on how I can resolve this issue?

#12221
cupy/cupy#8070

Your Environment

  • Operating System: Windows 10
  • Python Version Used: 3.12.10
  • spaCy Version Used: 3.8.11
  • Environment Information: here is the output of pip list
Package            Version
------------------ ------------
annotated-doc      0.0.4
annotated-types    0.7.0
blis               1.3.3
catalogue          2.0.10
certifi            2026.2.25
charset-normalizer 3.4.6
click              8.3.1
cloudpathlib       0.23.0
colorama           0.4.6
confection         0.1.5
cuda-pathfinder    1.4.3
cuda-toolkit       13.2.0
cupy-cuda12x       14.0.1
cymem              2.0.13
fastrlock          0.8.3
filelock           3.25.2
fsspec             2026.2.0
huggingface_hub    0.36.2
idna               3.11
Jinja2             3.1.6
markdown-it-py     4.0.0
MarkupSafe         3.0.3
mdurl              0.1.2
mpmath             1.3.0
murmurhash         1.0.15
networkx           3.6.1
numpy              2.4.3
packaging          26.0
pillow             12.0.0
pip                26.0.1
preshed            3.0.12
pydantic           2.12.5
pydantic_core      2.41.5
Pygments           2.19.2
PyYAML             6.0.3
regex              2026.2.28
requests           2.32.5
rich               14.3.3
safetensors        0.7.0
setuptools         82.0.1
shellingham        1.5.4
smart_open         7.5.1
spacy              3.8.11
spacy-alignments   0.9.2
spacy-legacy       3.0.12
spacy-loggers      1.0.5
spacy-transformers 1.3.9
srsly              2.5.2
sympy              1.13.1
thinc              8.3.10
tokenizers         0.21.4
torch              2.5.1+cu121
torchaudio         2.5.1+cu121
torchvision        0.20.1+cu121
tqdm               4.67.3
transformers       4.49.0
typer              0.24.1
typer-slim         0.24.0
typing_extensions  4.15.0
typing-inspection  0.4.2
urllib3            2.6.3
wasabi             1.1.3
weasel             0.4.3
wrapt              2.1.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions