diff --git a/graph_net/test/chain_naive_graph_decomposer_test.sh b/graph_net/test/chain_naive_graph_decomposer_test.sh index acdfd3f77..10ece10e1 100644 --- a/graph_net/test/chain_naive_graph_decomposer_test.sh +++ b/graph_net/test/chain_naive_graph_decomposer_test.sh @@ -20,4 +20,4 @@ EOF EXTRACTOR_CONFIG=$(echo $extractor_config_json_str | base64 -w 0) mkdir -p /tmp/naive_decompose_workspace -python3 -m graph_net.torch.single_device_runner --model-path $GRAPH_NET_ROOT/../samples/$MODEL_PATH_IN_SAMPLES --enable-extract True --extract-name resnet18 --dump-graph-hash-key --extractor-config=$EXTRACTOR_CONFIG +python3 -m graph_net.torch.single_device_runner --model-path $GRAPH_NET_ROOT/../samples/$MODEL_PATH_IN_SAMPLES --enable-extract True --extract-name resnet18 --dump-graph-hash-key --extractor-config=$EXTRACTOR_CONFIG \ No newline at end of file diff --git a/graph_net/test/decomposer_validator_test.sh b/graph_net/test/decomposer_validator_test.sh new file mode 100644 index 000000000..b1d3b01d6 --- /dev/null +++ b/graph_net/test/decomposer_validator_test.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +GRAPH_NET_ROOT=$(python3 -c "import graph_net; import os; print(os.path.dirname(graph_net.__file__))") + +if [ -z "$GRAPH_NET_DECOMPOSE_PATH" ]; then + GRAPH_NET_DECOMPOSE_PATH="$(pwd)/graphnet_decompose" +fi + +MODEL_PATH_IN_SAMPLES=/timm/resnet18 +MODEL_NAME=$(basename "$MODEL_PATH_IN_SAMPLES") +OUTPUT_DIR="${GRAPH_NET_DECOMPOSE_PATH:-$(pwd)}" +cp -r "$GRAPH_NET_ROOT/../samples/$MODEL_PATH_IN_SAMPLES" "$OUTPUT_DIR/" + +extractor_config_json_str=$(cat < "$FILE_PATH/log.log" 2>&1 + +python -m graph_net.log2json \ + --log-file "$FILE_PATH/log.log" \ + --output-dir "$FILE_PATH/JSON_results/" + +python -m graph_net.plot_ESt \ + --benchmark-path "$FILE_PATH/JSON_results/" \ + --output-dir "$FILE_PATH" + +echo "==================================================" +echo "Results saved in: $FILE_PATH/ES_result.png" +echo "" +echo "IMPORTANT: Please verify if the curve in ES_result.png is a straight line" +echo "If the curve is NOT a straight line, please check the log file: $FILE_PATH/log.log" +echo "==================================================" \ No newline at end of file diff --git a/graph_net/test/naive_graph_decomposer_test.sh b/graph_net/test/naive_graph_decomposer_test.sh index 2d333266b..f158544e4 100644 --- a/graph_net/test/naive_graph_decomposer_test.sh +++ b/graph_net/test/naive_graph_decomposer_test.sh @@ -21,4 +21,4 @@ EOF EXTRACTOR_CONFIG=$(echo $extractor_config_json_str | base64 -w 0) mkdir -p /tmp/naive_decompose_workspace -python3 -m graph_net.torch.single_device_runner --model-path $GRAPH_NET_ROOT/../samples/$MODEL_PATH_IN_SAMPLES --enable-extract True --extract-name resnet18 --dump-graph-hash-key --extractor-config=$EXTRACTOR_CONFIG +python3 -m graph_net.torch.single_device_runner --model-path $GRAPH_NET_ROOT/../samples/$MODEL_PATH_IN_SAMPLES --enable-extract True --extract-name resnet18 --dump-graph-hash-key --extractor-config=$EXTRACTOR_CONFIG \ No newline at end of file diff --git a/graph_net/torch/backend/range_decomposer_validator_backend.py b/graph_net/torch/backend/range_decomposer_validator_backend.py new file mode 100644 index 000000000..b1f71cdc7 --- /dev/null +++ b/graph_net/torch/backend/range_decomposer_validator_backend.py @@ -0,0 +1,76 @@ +import torch +import torch.nn as nn +import os +import sys +import inspect +import importlib.util +import itertools +from typing import List, Tuple, Dict, Any, Callable + + +class ComposedModel(nn.Module): + def __init__(self, subgraph: List[nn.Module]): + super().__init__() + self.subgraphs = nn.ModuleList(subgraph) + + def forward(self, **kwargs): + subgraph_intput = { + key.replace("L", "l_l", 1): value + for key, value in kwargs.items() + if key.startswith("L") + } + + output = None + for subgraph in self.subgraphs: + if output is None: + output = subgraph(**subgraph_intput) + else: + output = subgraph(*output) + + return output + + +class RangeDecomposerValidatorBackend: + def _load_model_instance(self, path: str, device: str) -> torch.nn.Module: + class_name = "GraphModule" + model_file = os.path.join(path, "model.py") + + spec = importlib.util.spec_from_file_location(class_name, model_file) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + + ModelClass = getattr(module, class_name) + instance = ModelClass().to(device) + return instance + + def __call__(self, model: torch.nn.Module) -> torch.nn.Module: + model_file_path = model.__class__.__graph_net_file_path__ + model_dir = os.path.dirname(model_file_path) + decomposed_parent_dir = model_dir + "_decomposed" + subgraph_paths = [] + for name in sorted(os.listdir(decomposed_parent_dir)): + full_path = os.path.join(decomposed_parent_dir, name) + if os.path.isdir(full_path) and name[-1].isdigit(): + subgraph_paths.append(full_path) + + print( + f"[RangeDecomposerValidatorBackend] Found subgraphs: {[os.path.basename(p) for p in subgraph_paths]}" + ) + + device = model.__class__.__graph_net_device__ + subgraph_instances = [] + + for path in subgraph_paths: + instance = self._load_model_instance(path, device) + subgraph_instances.append(instance) + dir_name = os.path.basename(path) + print( + f"[RangeDecomposerValidatorBackend] Loaded and instantiated '{dir_name}'" + ) + + composed_model = ComposedModel(subgraph_instances) + return composed_model.eval() + + def synchronize(self): + if torch.cuda.is_available(): + torch.cuda.synchronize() diff --git a/graph_net/torch/test_compiler.py b/graph_net/torch/test_compiler.py index f71359f1d..1095f24f5 100644 --- a/graph_net/torch/test_compiler.py +++ b/graph_net/torch/test_compiler.py @@ -23,7 +23,7 @@ from graph_net.torch.backend.blade_disc_backend import BladeDISCBackend from graph_net.torch.backend.nope_backend import NopeBackend from graph_net.torch.backend.unstable_to_stable_backend import UnstableToStableBackend -from todo_works.range_decomposer_validator.range_decomposer_validator import ( +from graph_net.torch.backend.range_decomposer_validator_backend import ( RangeDecomposerValidatorBackend, ) from graph_net.test_compiler_util import generate_allclose_configs @@ -69,6 +69,8 @@ def load_class_from_file( exec(compiled_code, module.__dict__) model_class = getattr(module, class_name, None) + setattr(model_class, "__graph_net_file_path__", file_path) + setattr(model_class, "__graph_net_device__", device) return model_class diff --git a/todo_works/range_decomposer_validator/__init__.py b/todo_works/range_decomposer_validator/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/range_decomposer_validator.py b/todo_works/range_decomposer_validator/range_decomposer_validator.py deleted file mode 100644 index 18d062526..000000000 --- a/todo_works/range_decomposer_validator/range_decomposer_validator.py +++ /dev/null @@ -1,91 +0,0 @@ -import torch -import torch.nn as nn -import os -import sys -import inspect -import importlib.util -from typing import List, Dict - - -class ComposedModel(nn.Module): - def __init__(self, submodules: List[nn.Module]): - super().__init__() - self.submodules = nn.ModuleList(submodules) - self.submodule_param_names = [ - list(inspect.signature(sm.forward).parameters.keys()) - for sm in self.submodules - ] - - def forward(self, **kwargs): - current_args = kwargs - for i, (sm, param_names) in enumerate( - zip(self.submodules, self.submodule_param_names) - ): - # 准备当前子图的输入字典 - call_kwargs = {} - if i > 0: - # 对于后续子图,第一个参数是上一个子图的输出 - first_param_name = param_names[0] - call_kwargs[first_param_name] = current_args # current_args 此时是上一个子图的输出 - - # 从主输入字典中筛选出当前子图需要的权重参数 - for name in param_names: - if name in current_args: - call_kwargs[name] = current_args[name] - - outputs = sm(**call_kwargs) - # 假设每个子图只有一个输出,并且返回的是一个元组 - current_args = outputs[0] - - return (current_args,) - - -class RangeDecomposerValidatorBackend: - def _load_model_instance(self, path: str, device: str) -> torch.nn.Module: - class_name = "GraphModule" - model_file = os.path.join(path, "model.py") - - spec = importlib.util.spec_from_file_location(class_name, model_file) - module = importlib.util.module_from_spec(spec) - spec.loader.exec_module(module) - - ModelClass = getattr(module, class_name) - instance = ModelClass().to(device) - return instance - - def __call__(self, model: torch.nn.Module) -> torch.nn.Module: - model_file_path = inspect.getfile( - model.__class__ - ) # e.g., /test/simple_CNN/model.py - model_dir = os.path.dirname(model_file_path) # e.g., /test/simple_CNN - - decomposed_parent_dir = ( - model_dir + "_decomposed" - ) # e.g., /test/simple_CNN_decomposed - subgraph_paths = [] - for name in sorted(os.listdir(decomposed_parent_dir)): - full_path = os.path.join(decomposed_parent_dir, name) - if os.path.isdir(full_path) and name.startswith("subgraph_"): - subgraph_paths.append(full_path) - - print( - f"[RangeDecomposerValidatorBackend] Found subgraphs: {[os.path.basename(p) for p in subgraph_paths]}" - ) - - submodule_instances = [] - device = next(model.parameters()).device # 从传入的model获取device信息 - - for path in subgraph_paths: - instance = self._load_model_instance(path, device) - submodule_instances.append(instance) - dir_name = os.path.basename(path) - print( - f"[RangeDecomposerValidatorBackend] Loaded and instantiated '{dir_name}'" - ) - - composed_model = ComposedModel(submodule_instances) - return composed_model.eval() - - def synchronize(self): - if torch.cuda.is_available(): - torch.cuda.synchronize() diff --git a/todo_works/range_decomposer_validator/test/simple_CNN/graph_hash.txt b/todo_works/range_decomposer_validator/test/simple_CNN/graph_hash.txt deleted file mode 100644 index 042fac7a8..000000000 --- a/todo_works/range_decomposer_validator/test/simple_CNN/graph_hash.txt +++ /dev/null @@ -1 +0,0 @@ -c595a90bd71adf88efb78451fc9209bc31b574510f7b0dfae00c544b7cca97ca \ No newline at end of file diff --git a/todo_works/range_decomposer_validator/test/simple_CNN/graph_net.json b/todo_works/range_decomposer_validator/test/simple_CNN/graph_net.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN/input_meta.py b/todo_works/range_decomposer_validator/test/simple_CNN/input_meta.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN/input_tensor_constraints.py b/todo_works/range_decomposer_validator/test/simple_CNN/input_tensor_constraints.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN/model.py b/todo_works/range_decomposer_validator/test/simple_CNN/model.py deleted file mode 100644 index ca8cf4d43..000000000 --- a/todo_works/range_decomposer_validator/test/simple_CNN/model.py +++ /dev/null @@ -1,92 +0,0 @@ -import torch - - -class GraphModule(torch.nn.Module): - def forward( - self, - L_x_: torch.Tensor, - L_self_modules_conv1_parameters_weight_: torch.nn.parameter.Parameter, - L_self_modules_conv1_parameters_bias_: torch.nn.parameter.Parameter, - L_self_modules_conv2_parameters_weight_: torch.nn.parameter.Parameter, - L_self_modules_conv2_parameters_bias_: torch.nn.parameter.Parameter, - L_self_modules_fc1_parameters_weight_: torch.nn.parameter.Parameter, - L_self_modules_fc1_parameters_bias_: torch.nn.parameter.Parameter, - L_self_modules_fc2_parameters_weight_: torch.nn.parameter.Parameter, - L_self_modules_fc2_parameters_bias_: torch.nn.parameter.Parameter, - ): - l_x_ = L_x_ - l_self_modules_conv1_parameters_weight_ = ( - L_self_modules_conv1_parameters_weight_ - ) - l_self_modules_conv1_parameters_bias_ = L_self_modules_conv1_parameters_bias_ - l_self_modules_conv2_parameters_weight_ = ( - L_self_modules_conv2_parameters_weight_ - ) - l_self_modules_conv2_parameters_bias_ = L_self_modules_conv2_parameters_bias_ - l_self_modules_fc1_parameters_weight_ = L_self_modules_fc1_parameters_weight_ - l_self_modules_fc1_parameters_bias_ = L_self_modules_fc1_parameters_bias_ - l_self_modules_fc2_parameters_weight_ = L_self_modules_fc2_parameters_weight_ - l_self_modules_fc2_parameters_bias_ = L_self_modules_fc2_parameters_bias_ - - # --- Subgraph 0 --- - # conv1 -> relu -> pool1 - input_1 = torch.conv2d( - l_x_, - l_self_modules_conv1_parameters_weight_, - l_self_modules_conv1_parameters_bias_, - (1, 1), # stride - (1, 1), # padding - (1, 1), # dilation - 1, # groups - ) - l_x_ = ( - l_self_modules_conv1_parameters_weight_ - ) = l_self_modules_conv1_parameters_bias_ = None - input_2 = torch.nn.functional.relu(input_1, inplace=True) - input_1 = None - input_3 = torch.nn.functional.max_pool2d(input_2, 2, 2, 0, 1, ceil_mode=False) - input_2 = None - - # --- Subgraph 1 --- - # conv2 -> relu -> pool2 - input_4 = torch.conv2d( - input_3, - l_self_modules_conv2_parameters_weight_, - l_self_modules_conv2_parameters_bias_, - (1, 1), - (1, 1), - (1, 1), - 1, - ) - input_3 = ( - l_self_modules_conv2_parameters_weight_ - ) = l_self_modules_conv2_parameters_bias_ = None - input_5 = torch.nn.functional.relu(input_4, inplace=True) - input_4 = None - input_6 = torch.nn.functional.max_pool2d(input_5, 2, 2, 0, 1, ceil_mode=False) - input_5 = None - - # --- Subgraph 2 --- - # flatten -> fc1 -> relu -> fc2 - input_7 = torch.flatten(input_6, 1) - input_6 = None - input_8 = torch._C._nn.linear( - input_7, - l_self_modules_fc1_parameters_weight_, - l_self_modules_fc1_parameters_bias_, - ) - input_7 = ( - l_self_modules_fc1_parameters_weight_ - ) = l_self_modules_fc1_parameters_bias_ = None - input_9 = torch.nn.functional.relu(input_8, inplace=True) - input_8 = None - input_10 = torch._C._nn.linear( - input_9, - l_self_modules_fc2_parameters_weight_, - l_self_modules_fc2_parameters_bias_, - ) - input_9 = ( - l_self_modules_fc2_parameters_weight_ - ) = l_self_modules_fc2_parameters_bias_ = None - - return (input_10,) diff --git a/todo_works/range_decomposer_validator/test/simple_CNN/weight_meta.py b/todo_works/range_decomposer_validator/test/simple_CNN/weight_meta.py deleted file mode 100644 index 8c38d90e1..000000000 --- a/todo_works/range_decomposer_validator/test/simple_CNN/weight_meta.py +++ /dev/null @@ -1,88 +0,0 @@ -class Program_weight_tensor_meta_L_x_: - name = "L_x_" - shape = [1, 1, 28, 28] # Batch size 1, 1 channel, 28x28 image - dtype = "torch.float32" - device = "cuda:0" - mean = 0.130 - std = 0.308 - data = None - - -class Program_weight_tensor_meta_L_self_modules_conv1_parameters_weight_: - name = "L_self_modules_conv1_parameters_weight_" - shape = [16, 1, 3, 3] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.001 - std = 0.108 - data = None - - -class Program_weight_tensor_meta_L_self_modules_conv1_parameters_bias_: - name = "L_self_modules_conv1_parameters_bias_" - shape = [16] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.0 - std = 0.1 - data = None - - -class Program_weight_tensor_meta_L_self_modules_conv2_parameters_weight_: - name = "L_self_modules_conv2_parameters_weight_" - shape = [32, 16, 3, 3] - dtype = "torch.float32" - device = "cuda:0" - mean = -0.002 - std = 0.055 - data = None - - -class Program_weight_tensor_meta_L_self_modules_conv2_parameters_bias_: - name = "L_self_modules_conv2_parameters_bias_" - shape = [32] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.0 - std = 0.05 - data = None - - -class Program_weight_tensor_meta_L_self_modules_fc1_parameters_weight_: - name = "L_self_modules_fc1_parameters_weight_" - shape = [128, 1568] # 1568 = 32 * 7 * 7 - dtype = "torch.float32" - device = "cuda:0" - mean = -0.000 - std = 0.025 - data = None - - -class Program_weight_tensor_meta_L_self_modules_fc1_parameters_bias_: - name = "L_self_modules_fc1_parameters_bias_" - shape = [128] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.0 - std = 0.02 - data = None - - -class Program_weight_tensor_meta_L_self_modules_fc2_parameters_weight_: - name = "L_self_modules_fc2_parameters_weight_" - shape = [10, 128] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.001 - std = 0.088 - data = None - - -class Program_weight_tensor_meta_L_self_modules_fc2_parameters_bias_: - name = "L_self_modules_fc2_parameters_bias_" - shape = [10] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.0 - std = 0.09 - data = None diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/graph_net.json b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/graph_net.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/input_meta.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/input_meta.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/input_tensor_constraints.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/input_tensor_constraints.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/model.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/model.py deleted file mode 100644 index 10b0eda6f..000000000 --- a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/model.py +++ /dev/null @@ -1,36 +0,0 @@ -import torch - - -class GraphModule(torch.nn.Module): - def forward( - self, - L_x_: torch.Tensor, - L_self_modules_conv1_parameters_weight_: torch.nn.parameter.Parameter, - L_self_modules_conv1_parameters_bias_: torch.nn.parameter.Parameter, - ): - l_x_ = L_x_ - l_self_modules_conv1_parameters_weight_ = ( - L_self_modules_conv1_parameters_weight_ - ) - l_self_modules_conv1_parameters_bias_ = L_self_modules_conv1_parameters_bias_ - - # --- Subgraph 0 --- - # conv1 -> relu -> pool1 - input_1 = torch.conv2d( - l_x_, - l_self_modules_conv1_parameters_weight_, - l_self_modules_conv1_parameters_bias_, - (1, 1), # stride - (1, 1), # padding - (1, 1), # dilation - 1, # groups - ) - l_x_ = ( - l_self_modules_conv1_parameters_weight_ - ) = l_self_modules_conv1_parameters_bias_ = None - input_2 = torch.nn.functional.relu(input_1, inplace=True) - input_1 = None - input_3 = torch.nn.functional.max_pool2d(input_2, 2, 2, 0, 1, ceil_mode=False) - input_2 = None - - return (input_3,) diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/weight_meta.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/weight_meta.py deleted file mode 100644 index 8ab978cf3..000000000 --- a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_0/weight_meta.py +++ /dev/null @@ -1,28 +0,0 @@ -class Program_weight_tensor_meta_L_x_: - name = "L_x_" - shape = [1, 1, 28, 28] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.130 - std = 0.308 - data = None - - -class Program_weight_tensor_meta_L_self_modules_conv1_parameters_weight_: - name = "L_self_modules_conv1_parameters_weight_" - shape = [16, 1, 3, 3] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.001 - std = 0.108 - data = None - - -class Program_weight_tensor_meta_L_self_modules_conv1_parameters_bias_: - name = "L_self_modules_conv1_parameters_bias_" - shape = [16] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.0 - std = 0.1 - data = None diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/graph_net.json b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/graph_net.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/input_meta.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/input_meta.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/input_tensor_constraints.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/input_tensor_constraints.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/model.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/model.py deleted file mode 100644 index 69149201e..000000000 --- a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/model.py +++ /dev/null @@ -1,35 +0,0 @@ -import torch - - -class GraphModule(torch.nn.Module): - def forward( - self, - input_3: torch.Tensor, # Output of subgraph_0 - L_self_modules_conv2_parameters_weight_: torch.nn.parameter.Parameter, - L_self_modules_conv2_parameters_bias_: torch.nn.parameter.Parameter, - ): - l_self_modules_conv2_parameters_weight_ = ( - L_self_modules_conv2_parameters_weight_ - ) - l_self_modules_conv2_parameters_bias_ = L_self_modules_conv2_parameters_bias_ - - # --- Subgraph 1 --- - # conv2 -> relu -> pool2 - input_4 = torch.conv2d( - input_3, - l_self_modules_conv2_parameters_weight_, - l_self_modules_conv2_parameters_bias_, - (1, 1), - (1, 1), - (1, 1), - 1, - ) - input_3 = ( - l_self_modules_conv2_parameters_weight_ - ) = l_self_modules_conv2_parameters_bias_ = None - input_5 = torch.nn.functional.relu(input_4, inplace=True) - input_4 = None - input_6 = torch.nn.functional.max_pool2d(input_5, 2, 2, 0, 1, ceil_mode=False) - input_5 = None - - return (input_6,) diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/weight_meta.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/weight_meta.py deleted file mode 100644 index a4f9001dd..000000000 --- a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_1/weight_meta.py +++ /dev/null @@ -1,29 +0,0 @@ -# 这是 subgraph_0 的输出,同时也是 subgraph_1 的输入 -class Program_weight_tensor_meta_input_3: - name = "input_3" - shape = [1, 16, 14, 14] # 28x28 经过一次 2x2 池化后变为 14x14 - dtype = "torch.float32" - device = "cuda:0" - mean = None - std = None - data = None - - -class Program_weight_tensor_meta_L_self_modules_conv2_parameters_weight_: - name = "L_self_modules_conv2_parameters_weight_" - shape = [32, 16, 3, 3] - dtype = "torch.float32" - device = "cuda:0" - mean = -0.002 - std = 0.055 - data = None - - -class Program_weight_tensor_meta_L_self_modules_conv2_parameters_bias_: - name = "L_self_modules_conv2_parameters_bias_" - shape = [32] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.0 - std = 0.05 - data = None diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/graph_net.json b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/graph_net.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/input_meta.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/input_meta.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/input_tensor_constraints.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/input_tensor_constraints.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/model.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/model.py deleted file mode 100644 index bad03c955..000000000 --- a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/model.py +++ /dev/null @@ -1,41 +0,0 @@ -import torch - - -class GraphModule(torch.nn.Module): - def forward( - self, - input_6: torch.Tensor, # Output of subgraph_1 - L_self_modules_fc1_parameters_weight_: torch.nn.parameter.Parameter, - L_self_modules_fc1_parameters_bias_: torch.nn.parameter.Parameter, - L_self_modules_fc2_parameters_weight_: torch.nn.parameter.Parameter, - L_self_modules_fc2_parameters_bias_: torch.nn.parameter.Parameter, - ): - l_self_modules_fc1_parameters_weight_ = L_self_modules_fc1_parameters_weight_ - l_self_modules_fc1_parameters_bias_ = L_self_modules_fc1_parameters_bias_ - l_self_modules_fc2_parameters_weight_ = L_self_modules_fc2_parameters_weight_ - l_self_modules_fc2_parameters_bias_ = L_self_modules_fc2_parameters_bias_ - - # --- Subgraph 2 --- - # flatten -> fc1 -> relu -> fc2 - input_7 = torch.flatten(input_6, 1) - input_6 = None - input_8 = torch._C._nn.linear( - input_7, - l_self_modules_fc1_parameters_weight_, - l_self_modules_fc1_parameters_bias_, - ) - input_7 = ( - l_self_modules_fc1_parameters_weight_ - ) = l_self_modules_fc1_parameters_bias_ = None - input_9 = torch.nn.functional.relu(input_8, inplace=True) - input_8 = None - input_10 = torch._C._nn.linear( - input_9, - l_self_modules_fc2_parameters_weight_, - l_self_modules_fc2_parameters_bias_, - ) - input_9 = ( - l_self_modules_fc2_parameters_weight_ - ) = l_self_modules_fc2_parameters_bias_ = None - - return (input_10,) diff --git a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/weight_meta.py b/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/weight_meta.py deleted file mode 100644 index 71ed88e14..000000000 --- a/todo_works/range_decomposer_validator/test/simple_CNN_decomposed/subgraph_2/weight_meta.py +++ /dev/null @@ -1,49 +0,0 @@ -# 这是 subgraph_1 的输出,同时也是 subgraph_2 的输入 -class Program_weight_tensor_meta_input_6: - name = "input_6" - shape = [1, 32, 7, 7] # 14x14 经过一次 2x2 池化后变为 7x7 - dtype = "torch.float32" - device = "cuda:0" - mean = None - std = None - data = None - - -class Program_weight_tensor_meta_L_self_modules_fc1_parameters_weight_: - name = "L_self_modules_fc1_parameters_weight_" - shape = [128, 1568] # 1568 = 32 * 7 * 7 - dtype = "torch.float32" - device = "cuda:0" - mean = -0.000 - std = 0.025 - data = None - - -class Program_weight_tensor_meta_L_self_modules_fc1_parameters_bias_: - name = "L_self_modules_fc1_parameters_bias_" - shape = [128] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.0 - std = 0.02 - data = None - - -class Program_weight_tensor_meta_L_self_modules_fc2_parameters_weight_: - name = "L_self_modules_fc2_parameters_weight_" - shape = [10, 128] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.001 - std = 0.088 - data = None - - -class Program_weight_tensor_meta_L_self_modules_fc2_parameters_bias_: - name = "L_self_modules_fc2_parameters_bias_" - shape = [10] - dtype = "torch.float32" - device = "cuda:0" - mean = 0.0 - std = 0.09 - data = None