NNI.compression.pytorch.speedup.compressor #4666
Description
Describe the issue:
I encountered the problem when using NNI pruning for FPN-ResNet network compression.
input_size = [3, 3, 64, 64]
The error is reported as follows.
Traceback (most recent call last):
File "E:/pythonProject/NNI.py", line 89, in
m_speedup.speedup_model()
File "E:\Anaconda\lib\site-packages\nni\compression\pytorch\speedup\compressor.py", line 507, in speedup_model
self.infer_modules_masks()
File "E:\Anaconda\lib\site-packages\nni\compression\pytorch\speedup\compressor.py", line 353, in infer_modules_masks
self.update_direct_sparsity(curnode)
File "E:\Anaconda\lib\site-packages\nni\compression\pytorch\speedup\compressor.py", line 215, in update_direct_sparsity
func, dummy_input, in_masks, in_constants=in_constants, batch_dim=self.batch_dim)
File "E:\Anaconda\lib\site-packages\nni\compression\pytorch\speedup\infer_mask.py", line 80, in init
self.output = self.module(*dummy_input)
TypeError: add() received an invalid combination of arguments - got (Tensor), but expected (Tensor input, Tensor other, *, Number alpha, Tensor out)
Sometimes it also reports an error as follows.
Traceback (most recent call last):
File "E:/pythonProject/NNI.py", line 89, in
m_speedup.speedup_model()
File "E:\Anaconda\lib\site-packages\nni\compression\pytorch\speedup\compressor.py", line 507, in speedup_model
self.infer_modules_masks()
File "E:\Anaconda\lib\site-packages\nni\compression\pytorch\speedup\compressor.py", line 353, in infer_modules_masks
self.update_direct_sparsity(curnode)
File "E:\Anaconda\lib\site-packages\nni\compression\pytorch\speedup\compressor.py", line 215, in update_direct_sparsity
func, dummy_input, in_masks, in_constants=in_constants, batch_dim=self.batch_dim)
File "E:\Anaconda\lib\site-packages\nni\compression\pytorch\speedup\infer_mask.py", line 80, in init
self.output = self.module(*dummy_input)
TypeError: mean() received an invalid combination of arguments - got (dim=tuple, keepdim=bool, ), but expected one of:
- (Tensor input, *, torch.dtype dtype)
- (Tensor input, tuple of ints dim, bool keepdim, *, torch.dtype dtype, Tensor out)
- (Tensor input, tuple of names dim, bool keepdim, *, torch.dtype dtype, Tensor out)
Looking forward to an early reply.
Environment:
- NNI version:2.6
- Training service (local|remote|pai|aml|etc):
- Client OS:
- Server OS (for remote mode only):
- Python version:3.6
- PyTorch/TensorFlow version:
- Is conda/virtualenv/venv used?:
- Is running in Docker?:
Configuration:
- Experiment config (remember to remove secrets!):
- Search space:
Log message:
- nnimanager.log:
- dispatcher.log:
- nnictl stdout and stderr:
How to reproduce it?: