DeepWok / mase

Machine-Learning Accelerator System Exploration Tools
Other
117 stars 52 forks source link

Example of a looking-for-help issue #19

Open jianyicheng opened 8 months ago

jianyicheng commented 8 months ago

This issue provides an example of a looking-for-help issue. This helps us to efficiently reproduce your problem on our end and help you to find solutions.


Question: It seems the current commen_meta_layers raises an error when analysing resnet18's BatchNorm layer?

Commit hash: 98cf7a681b91bb524edc6a81f72cbf289c2acec1

Command to reproduce:

./ch transform --config configs/by_model/resnet18/resnet18.toml

Error message or full log:

Traceback (most recent call last):
  File "/data/zz7522/Projects/mase-tools/machop/./ch", line 4, in <module>
    ChopCLI().run()
  File "/data/zz7522/Projects/mase-tools/machop/chop/cli.py", line 195, in run
    self._run_transform()
  File "/data/zz7522/Projects/mase-tools/machop/chop/cli.py", line 302, in _run_transform
    transform(**transform_params)
  File "/data/zz7522/Projects/mase-tools/machop/chop/actions/transform.py", line 61, in transform
    graph = add_common_metadata_analysis_pass(graph, pass_args=dummy_in)
  File "/data/zz7522/Projects/mase-tools/machop/chop/passes/analysis/add_metadata/add_common_metadata.py", line 260, in add_common_metadata_analysis_pass
    graph = graph_iterator_for_metadata(graph, pass_args)
  File "/data/zz7522/Projects/mase-tools/machop/chop/passes/analysis/add_metadata/add_common_metadata.py", line 218, in graph_iterator_for_metadata
    analysis_common_parameters(node, dummy_in)
  File "/data/zz7522/Projects/mase-tools/machop/chop/passes/analysis/add_metadata/add_common_metadata.py", line 155, in analysis_common_parameters
    node.meta["mase"] = analyse_common_parameters_module(node.meta["mase"])
  File "/data/zz7522/Projects/mase-tools/machop/chop/passes/analysis/add_metadata/common_metadata_layers.py", line 295, in analyse_common_parameters_module
    size = _get_size_by_module_simulation(meta)
  File "/data/zz7522/Projects/mase-tools/machop/chop/passes/analysis/add_metadata/common_metadata_layers.py", line 282, in _get_size_by_module_simulation
    result = meta.module(dummy_data, *args, **kwargs)
  File "/home/zz7522/anaconda3/envs/mase-sw/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/zz7522/anaconda3/envs/mase-sw/lib/python3.10/site-packages/torch/nn/modules/batchnorm.py", line 171, in forward
    return F.batch_norm(
  File "/home/zz7522/anaconda3/envs/mase-sw/lib/python3.10/site-packages/torch/nn/functional.py", line 2448, in batch_norm
    _verify_batch_size(input.size())
  File "/home/zz7522/anaconda3/envs/mase-sw/lib/python3.10/site-packages/torch/nn/functional.py", line 2416, in _verify_batch_size
    raise ValueError("Expected more than 1 value per channel when training, got input size {}".format(size))
ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 512, 1, 1])