Skip to content
This repository has been archived by the owner on Sep 18, 2024. It is now read-only.

how to except last layers in SensitivityPruner #3811

Closed
chasingw opened this issue Jun 11, 2021 · 2 comments
Closed

how to except last layers in SensitivityPruner #3811

chasingw opened this issue Jun 11, 2021 · 2 comments
Assignees

Comments

@chasingw
Copy link

chasingw commented Jun 11, 2021

Describe the issue:
I use config_list set the op_names which I want to prune. but it seems not work because last layer is also pruned.
the config_list is

config_list = [
    {
      'sparsity': args.sparsity,
      'op_types': ['Conv2d'],
      'op_names': ['backbone_2d.blocks.0.1',
                  'backbone_2d.blocks.0.4',
                  'backbone_2d.blocks.0.7',
                  'backbone_2d.blocks.0.10',
                  'backbone_2d.blocks.1.1',
                  'backbone_2d.blocks.1.4',
                  'backbone_2d.blocks.1.7',
                  'backbone_2d.blocks.1.10',
                  'backbone_2d.blocks.1.13',
                  'backbone_2d.blocks.1.16',
                  'backbone_2d.blocks.2.1',
                  'backbone_2d.blocks.2.4',
                  'backbone_2d.blocks.2.7',
                  'backbone_2d.blocks.2.10',
                  'backbone_2d.blocks.2.13',
                  'backbone_2d.blocks.2.16']
  }]

and the output is

[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.0.1 remain/total: 47/64
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.0.4 remain/total: 50/64
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.0.7 remain/total: 53/64
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.0.10 remain/total: 47/64
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.1.1 remain/total: 95/128
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.1.4 remain/total: 108/128
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.1.7 remain/total: 95/128
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.1.10 remain/total: 85/128
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.1.13 remain/total: 95/128
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.1.16 remain/total: 95/128
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.2.1 remain/total: 165/256
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.2.4 remain/total: 127/256
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.2.7 remain/total: 159/256
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.2.10 remain/total: 161/256
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.2.13 remain/total: 151/256
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune backbone_2d.blocks.2.16 remain/total: 130/256
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune dense_head.conv_cls remain/total: 34/162
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune dense_head.conv_box remain/total: 21/126
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) simulated prune dense_head.conv_dir_cls remain/total: 6/36
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) Model state_dict saved to ./experiment_data_l2/pruned.pth
[2021-06-11 03:16:54] INFO (nni.compression.pytorch.compressor/MainThread) Mask dict saved to ./experiment_data_l2/mask.pth

and I found exclude param in this doc Compression/Tutorial
but it seems not work for SensitivityPruner?
Environment:

  • NNI version: 2.0
  • Training service (local|remote|pai|aml|etc):local
  • Client OS: ubuntu18.04
  • Server OS (for remote mode only):
  • Python version:3.7.9
  • PyTorch/TensorFlow version:1.5.0
  • Is conda/virtualenv/venv used?:conda
  • Is running in Docker?:no

Configuration:

  • Experiment config (remember to remove secrets!):
  • Search space:

Log message:

  • nnimanager.log:
  • dispatcher.log:
  • nnictl stdout and stderr:

How to reproduce it?:

@QuanluZhang QuanluZhang assigned J-shang and zheng-ningxin and unassigned J-shang Jun 11, 2021
@J-shang
Copy link
Contributor

J-shang commented Jun 11, 2021

@chasingw If you want to use exclude, you can modify the validate code for a workaround, this pr is for your reference: #3815

@scarlett2018
Copy link
Member

as the reference has been provided and there are no responds so far, closing the issue. feel free to reopen if it is still an issue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants