Skip to content

IndexError: index 1 is out of bounds for axis 1 with size 1 #1673

Description

@ueno-hiroshi002

Issue Type

Bug

Source

pip (model-compression-toolkit)

MCT Version

2.6.0

OS Platform and Distribution

Linux Ubuntu 22.04

Python version

3.10

Describe the issue

I tried post-training quantization on a EfficientViT(m) model from timm(1.0.24).

from timm import create_model
float_model = create_model("efficientvit_m0.r224_in1k", pretrained=True)

However, I got the following error:

IndexError: index 1 is out of bounds for axis 1 with size 1

The following model causes the same error:

create_model("shvit_s1.in1k", pretrained=True)

Expected behaviour

Success PTQ.

Code to reproduce the issue

import numpy as np
from timm import create_model
from timm.data.transforms_factory import create_transform
from timm.data import resolve_data_config
import model_compression_toolkit as mct

# Prepare Model
float_model = create_model("efficientvit_m0.r224_in1k", pretrained=True)
transform = create_transform(**resolve_data_config(float_model.pretrained_cfg, model=float_model), is_training=False)

# Prepare Data
def representative_data_gen():
    yield [np.random.random((1, 3, 224, 224))]

# MCT Quantization
quantized_model, quantization_info = mct.ptq.pytorch_post_training_quantization(
                in_module=float_model,
                representative_data_gen=representative_data_gen)

Log output

Traceback (most recent call last):
  File "/home/psnrdu/sss/model_augment/minimum_efficientvit_m.py", line 16, in <module>
    quantized_model, quantization_info = mct.ptq.pytorch_post_training_quantization(
  File "/home/psnrdu/sss/venv_mct260/py310-mct260/lib/python3.10/site-packages/model_compression_toolkit/ptq/pytorch/quantization_facade.py", line 123, in pytorch_post_training_quantization
    tg, bit_widths_config, _, scheduling_info = core_runner(in_model=in_module,
  File "/home/psnrdu/sss/venv_mct260/py310-mct260/lib/python3.10/site-packages/model_compression_toolkit/core/runner.py", line 99, in core_runner
    graph = graph_preparation_runner(in_model,
  File "/home/psnrdu/sss/venv_mct260/py310-mct260/lib/python3.10/site-packages/model_compression_toolkit/core/graph_prep_runner.py", line 82, in graph_preparation_runner
    transformed_graph = get_finalized_graph(graph,
  File "/home/psnrdu/sss/venv_mct260/py310-mct260/lib/python3.10/site-packages/model_compression_toolkit/core/graph_prep_runner.py", line 148, in get_finalized_graph
    transformed_graph = substitute(transformed_graph, fw_impl.get_residual_collapsing_substitution())
  File "/home/psnrdu/sss/venv_mct260/py310-mct260/lib/python3.10/site-packages/model_compression_toolkit/core/common/substitutions/apply_substitutions.py", line 36, in substitute
    graph = substitution.substitute(graph, idn)
  File "/home/psnrdu/sss/venv_mct260/py310-mct260/lib/python3.10/site-packages/model_compression_toolkit/core/common/substitutions/residual_collapsing.py", line 82, in substitute
    kernel_collapsed = self.residual_collapsing_fn(first_node, self.kernel_str)
  File "/home/psnrdu/sss/venv_mct260/py310-mct260/lib/python3.10/site-packages/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py", line 58, in residual_collapsing_fn
    kernel[i, i, idxH, idxW] += 1
IndexError: index 1 is out of bounds for axis 1 with size 1

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