Source code for otx.backend.native.models.segmentation.litehrnet

# Copyright (C) 2023-2024 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

"""LiteHRNet model implementations."""

from __future__ import annotations

from typing import TYPE_CHECKING, Any, Literal

from torch.onnx import OperatorExportTypes

from otx.backend.native.exporter.base import OTXModelExporter
from otx.backend.native.exporter.native import OTXNativeModelExporter
from otx.backend.native.models.base import DataInputParams, DefaultOptimizerCallable, DefaultSchedulerCallable
from otx.backend.native.models.segmentation.backbones import LiteHRNetBackbone
from otx.backend.native.models.segmentation.base import OTXSegmentationModel
from otx.backend.native.models.segmentation.heads import FCNHead
from otx.backend.native.models.segmentation.losses import CrossEntropyLossWithIgnore
from otx.backend.native.models.segmentation.segmentors import BaseSegmentationModel
from otx.backend.native.models.utils.support_otx_v1 import OTXv1Helper
from otx.config.data import TileConfig
from otx.metrics.dice import SegmCallable

if TYPE_CHECKING:
    from lightning.pytorch.cli import LRSchedulerCallable, OptimizerCallable
    from torch import nn

    from otx.backend.native.schedulers import LRSchedulerListCallable
    from otx.metrics import MetricCallable
    from otx.types.label import LabelInfoTypes


[docs] class LiteHRNet(OTXSegmentationModel): """LiteHRNet Model. Args: label_info (LabelInfoTypes): Information about the hierarchical labels. data_input_params (DataInputParams): Parameters for data input. model_name (Literal, optional): Name of the model. Defaults to "lite_hrnet_18". optimizer (OptimizerCallable, optional): Callable for the optimizer. Defaults to DefaultOptimizerCallable. scheduler (LRSchedulerCallable | LRSchedulerListCallable, optional): Callable for the learning rate scheduler. Defaults to DefaultSchedulerCallable. metric (MetricCallable, optional): Callable for the metric. Defaults to SegmCallable. torch_compile (bool, optional): Flag to indicate whether to use torch.compile. Defaults to False. tile_config (TileConfig, optional): Configuration for tiling. Defaults to TileConfig(enable_tiler=False). """ def __init__( self, label_info: LabelInfoTypes, data_input_params: DataInputParams, model_name: Literal["lite_hrnet_s", "lite_hrnet_18", "lite_hrnet_x"] = "lite_hrnet_18", optimizer: OptimizerCallable = DefaultOptimizerCallable, scheduler: LRSchedulerCallable | LRSchedulerListCallable = DefaultSchedulerCallable, metric: MetricCallable = SegmCallable, # type: ignore[assignment] torch_compile: bool = False, tile_config: TileConfig = TileConfig(enable_tiler=False), ): super().__init__( label_info=label_info, data_input_params=data_input_params, model_name=model_name, optimizer=optimizer, scheduler=scheduler, metric=metric, torch_compile=torch_compile, tile_config=tile_config, ) def _create_model(self, num_classes: int | None = None) -> nn.Module: # initialize backbones num_classes = num_classes if num_classes is not None else self.num_classes backbone = LiteHRNetBackbone(self.model_name) decode_head = FCNHead(self.model_name, num_classes=num_classes) criterion = CrossEntropyLossWithIgnore(ignore_index=self.label_info.ignore_index) # type: ignore[attr-defined] return BaseSegmentationModel( backbone=backbone, decode_head=decode_head, criterion=criterion, )
[docs] def load_from_otx_v1_ckpt(self, state_dict: dict, add_prefix: str = "model.model.") -> dict: """Load the previous OTX ckpt according to OTX2.0.""" return OTXv1Helper.load_seg_lite_hrnet_ckpt(state_dict, add_prefix)
@property def _optimization_config(self) -> dict[str, Any]: """PTQ config for LiteHRNet.""" ignored_scope = self.ignore_scope optim_config = { "advanced_parameters": { "activations_range_estimator_params": { "min": {"statistics_type": "QUANTILE", "aggregator_type": "MIN", "quantile_outlier_prob": 1e-4}, "max": {"statistics_type": "QUANTILE", "aggregator_type": "MAX", "quantile_outlier_prob": 1e-4}, }, }, } optim_config.update(ignored_scope) return optim_config @property def _exporter(self) -> OTXModelExporter: """Creates OTXModelExporter object that can export the model.""" return OTXNativeModelExporter( task_level_export_parameters=self._export_parameters, data_input_params=self.data_input_params, resize_mode="standard", pad_value=0, swap_rgb=False, via_onnx=False, onnx_export_configuration={"operator_export_type": OperatorExportTypes.ONNX_ATEN_FALLBACK}, output_names=["preds", "feature_vector"] if self.explain_mode else None, ) @property def ignore_scope(self) -> dict[str, Any]: """Get the ignored scope for LiteHRNet.""" if self.model_name == "lite_hrnet_x": return { "ignored_scope": { "patterns": ["__module.model.decode_head.aggregator/*"], "names": [ "__module.model.backbone.stage0.0.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.0.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.0/aten::add_/Add_1", "__module.model.backbone.stage0.1.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.1.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.1/aten::add_/Add_1", "__module.model.backbone.stage1.0.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.0.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.0/aten::add_/Add_1", "__module.model.backbone.stage1.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.0/aten::add_/Add_2", "__module.model.backbone.stage1.0/aten::add_/Add_5", "__module.model.backbone.stage1.1.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.1.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.1/aten::add_/Add_1", "__module.model.backbone.stage1.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.1/aten::add_/Add_2", "__module.model.backbone.stage1.1/aten::add_/Add_5", "__module.model.backbone.stage1.2.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.2.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.2.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.2.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.2.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.2/aten::add_/Add_1", "__module.model.backbone.stage1.2.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.2/aten::add_/Add_2", "__module.model.backbone.stage1.2/aten::add_/Add_5", "__module.model.backbone.stage1.3.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.3.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.3.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.3.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.3.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.3/aten::add_/Add_1", "__module.model.backbone.stage1.3.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.3/aten::add_/Add_2", "__module.model.backbone.stage1.3/aten::add_/Add_5", "__module.model.backbone.stage2.0.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage2.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage2.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage2.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_3", "__module.model.backbone.stage2.0.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage2.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage2.0/aten::add_/Add_1", "__module.model.backbone.stage2.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage2.0/aten::add_/Add_2", "__module.model.backbone.stage2.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_3", "__module.model.backbone.stage2.0/aten::add_/Add_3", "__module.model.backbone.stage2.0/aten::add_/Add_6", "__module.model.backbone.stage2.0/aten::add_/Add_7", "__module.model.backbone.stage2.0/aten::add_/Add_11", "__module.model.backbone.stage2.1.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage2.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage2.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage2.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_3", "__module.model.backbone.stage2.1.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage2.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage2.1/aten::add_/Add_1", "__module.model.backbone.stage2.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage2.1/aten::add_/Add_2", "__module.model.backbone.stage2.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_3", "__module.model.backbone.stage2.1/aten::add_/Add_3", "__module.model.backbone.stage2.1/aten::add_/Add_6", "__module.model.backbone.stage2.1/aten::add_/Add_7", "__module.model.backbone.stage2.1/aten::add_/Add_11", "__module.model.decode_head.aggregator/aten::add/Add", "__module.model.decode_head.aggregator/aten::add/Add_1", "__module.model.decode_head.aggregator/aten::add/Add_2", "__module.model.backbone.stage2.1/aten::add_/Add", ], }, "preset": "performance", } if self.model_name == "lite_hrnet_18": return { "ignored_scope": { "patterns": ["__module.model.backbone/*"], "names": [ "__module.model.backbone.stage0.0.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.0.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.0/aten::add_/Add_1", "__module.model.backbone.stage0.1.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.1.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.1/aten::add_/Add_1", "__module.model.backbone.stage1.0.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.0.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.0/aten::add_/Add_1", "__module.model.backbone.stage1.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.0/aten::add_/Add_2", "__module.model.backbone.stage1.0/aten::add_/Add_5", "__module.model.backbone.stage1.1.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.1.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.1/aten::add_/Add_1", "__module.model.backbone.stage1.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.1/aten::add_/Add_2", "__module.model.backbone.stage1.1/aten::add_/Add_5", "__module.model.backbone.stage1.2.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.2.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.2.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.2.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.2.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.2/aten::add_/Add_1", "__module.model.backbone.stage1.2.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.2/aten::add_/Add_2", "__module.model.backbone.stage1.2/aten::add_/Add_5", "__module.model.backbone.stage1.3.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.3.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.3.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.3.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.3.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.3/aten::add_/Add_1", "__module.model.backbone.stage1.3.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.3/aten::add_/Add_2", "__module.model.backbone.stage1.3/aten::add_/Add_5", "__module.model.backbone.stage2.0.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage2.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage2.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage2.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_3", "__module.model.backbone.stage2.0.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage2.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage2.0/aten::add_/Add_1", "__module.model.backbone.stage2.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage2.0/aten::add_/Add_2", "__module.model.backbone.stage2.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_3", "__module.model.backbone.stage2.0/aten::add_/Add_3", "__module.model.backbone.stage2.0/aten::add_/Add_6", "__module.model.backbone.stage2.0/aten::add_/Add_7", "__module.model.backbone.stage2.0/aten::add_/Add_11", "__module.model.backbone.stage2.1.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage2.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage2.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage2.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_3", "__module.model.backbone.stage2.1.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage2.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage2.1/aten::add_/Add_1", "__module.model.backbone.stage2.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage2.1/aten::add_/Add_2", "__module.model.backbone.stage2.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_3", "__module.model.backbone.stage2.1/aten::add_/Add_3", "__module.model.backbone.stage2.1/aten::add_/Add_6", "__module.model.backbone.stage2.1/aten::add_/Add_7", "__module.model.backbone.stage2.1/aten::add_/Add_11", "__module.model.decode_head.aggregator/aten::add/Add", "__module.model.decode_head.aggregator/aten::add/Add_1", "__module.model.decode_head.aggregator/aten::add/Add_2", "__module.model.backbone.stage2.1/aten::add_/Add", ], }, "preset": "mixed", } if self.model_name == "lite_hrnet_s": return { "ignored_scope": { "names": [ "__module.model.backbone.stage0.0.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.0.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.0/aten::add_/Add_1", "__module.model.backbone.stage0.1.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.1.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.1/aten::add_/Add_1", "__module.model.backbone.stage0.2.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.2.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.2.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.2.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.2/aten::add_/Add_1", "__module.model.backbone.stage0.3.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.3.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.3.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage0.3.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage0.3/aten::add_/Add_1", "__module.model.backbone.stage1.0.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.0.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.0.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.0/aten::add_/Add_1", "__module.model.backbone.stage1.0.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.0/aten::add_/Add_2", "__module.model.backbone.stage1.0/aten::add_/Add_5", "__module.model.backbone.stage1.1.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.1.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.1.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.1/aten::add_/Add_1", "__module.model.backbone.stage1.1.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.1/aten::add_/Add_2", "__module.model.backbone.stage1.1/aten::add_/Add_5", "__module.model.backbone.stage1.2.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.2.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.2.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.2.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.2.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.2/aten::add_/Add_1", "__module.model.backbone.stage1.2.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.2/aten::add_/Add_2", "__module.model.backbone.stage1.2/aten::add_/Add_5", "__module.model.backbone.stage1.3.layers.0.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.3.layers.0.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.3.layers.0.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.3.layers.1.cross_resolution_weighting/aten::mul/Multiply", "__module.model.backbone.stage1.3.layers.1.cross_resolution_weighting/aten::mul/Multiply_1", "__module.model.backbone.stage1.3/aten::add_/Add_1", "__module.model.backbone.stage1.3.layers.1.cross_resolution_weighting/aten::mul/Multiply_2", "__module.model.backbone.stage1.3/aten::add_/Add_2", "__module.model.backbone.stage1.3/aten::add_/Add_5", "__module.model.decode_head.aggregator/aten::add/Add", "__module.model.decode_head.aggregator/aten::add/Add_1", ], }, "preset": "mixed", } return {}