coremltools icon indicating copy to clipboard operation
coremltools copied to clipboard

Failure at `assert "PackedParams" in node.output().type().name()` when converting Silero VAD

Open b8591340 opened this issue 7 months ago • 1 comments

import torch
import coremltools as ct
import numpy as np

model, _ = torch.hub.load(
    repo_or_dir="snakers4/silero-vad", model="silero_vad", force_reload=True
)
model.eval()
seconds_of_audio = 60 
sample_rate = 16000
num_samples = sample_rate * seconds_of_audio
sample_input = torch.randn(1, num_samples, dtype=torch.float32)
input_features = [
    ct.TensorType(name="audio_input", shape=sample_input.shape),
    ct.TensorType(name="sequence_length", shape=ct.Shape((1,)), dtype=np.int64),
]
output_features = [ct.TensorType(name="output")]
coreml_model = ct.convert(
    traced_model,
    inputs=input_features,
    outputs=output_features,
    minimum_deployment_target=ct.target.iOS17,
    skip_model_load=True,
)
coreml_model.save("SileroVAD.mlmodel")

Stack Trace

Traceback (most recent call last):
  File "/silero-vad-to-coreml/convert.py", line 29, in <module>
    coreml_model = ct.convert(
                   ^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/_converters_entry.py", line 574, in convert
    mlmodel = mil_convert(
              ^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/converter.py", line 188, in mil_convert
    return _mil_convert(model, convert_from, convert_to, ConverterRegistry, MLModel, compute_units, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/converter.py", line 212, in _mil_convert
    proto, mil_program = mil_convert_to_proto(
                         ^^^^^^^^^^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/converter.py", line 286, in mil_convert_to_proto
    prog = frontend_converter(model, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/converter.py", line 108, in __call__
    return load(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/frontend/torch/load.py", line 71, in load
    converter = TorchConverter(
                ^^^^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/frontend/torch/converter.py", line 349, in __init__
    self.graph, self.params_dict, self.buffer_dict = InternalTorchIRGraph.from_torchscript(
                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/frontend/torch/internal_graph.py", line 374, in from_torchscript
    raw_graph, params_dict, buffer_dict = _expand_and_optimize_ir(torchscript)
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/frontend/torch/torchscript_utils.py", line 199, in _expand_and_optimize_ir
    graph, params_dict, buffer_dict = _jit_pass_lower_graph(graph, torchscript)
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/frontend/torch/torchscript_utils.py", line 146, in _jit_pass_lower_graph
    _lower_graph_block(graph)
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/frontend/torch/torchscript_utils.py", line 109, in _lower_graph_block
    _lower_graph_block(block)
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/frontend/torch/torchscript_utils.py", line 131, in _lower_graph_block
    is_quantized_tensor = _check_is_quantized_tensor(node, module)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.pyvenv/coreml/lib/python3.11/site-packages/coremltools/converters/mil/frontend/torch/torchscript_utils.py", line 102, in _check_is_quantized_tensor
    assert "PackedParams" in node.output().type().name()
                             ^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'torch._C.TensorType' object has no attribute ‘name'

System environment

  • coremltools version: 7.1
  • OS (e.g. MacOS version or Linux type): macOS Sonoma 14.1.1
  • torch: 2.1.1

Context

This is a Torch Script model.

b8591340 avatar Nov 17 '23 10:11 b8591340