[BUG] Compression with .onnx error
Describe the bug
error occurred when I try to compress the model with .onnx file.
Have you searched existing issues? 🔎
- [X] I have searched and found no existing issues
Reproduction
Execute below python code
from netspresso import NetsPresso
from netspresso.enums import Framework
netspresso = NetsPresso(email="???", password="???")
# 1. Declare compressor
compressor = netspresso.compressor()
compression_ratio = 0.1
# 2. Run automatic compression
compression_result = compressor.automatic_compression(
input_shapes=[{"batch": 1, "channel": 3, "dimension": [640, 640]}],
input_model_path="./board_test/640x640-yolox-s.onnx",
output_dir=f"./board_test/compression_{compression_ratio}",
compression_ratio=compression_ratio,
framework=Framework.ONNX
)
Screenshot
No response
Logs
(np_trainer) (base) junho.shin@3090f:/ssd1/junho.shin/netspresso-trainer$ /ssd1/junho.shin/anaconda3/envs/np_trainer/bin/python /ssd1/junho.shin/netspresso-trainer/compression.py
2024-05-03 06:14:42.385 | INFO | netspresso.clients.config:<module>:11 - Read PROD config
2024-05-03 06:14:44.315 | INFO | netspresso.clients.auth.main:login:38 - Login successfully
2024-05-03 06:14:44.839 | INFO | netspresso.clients.auth.main:get_user_info:55 - Successfully got user information
2024-05-03 06:14:44.841 | INFO | netspresso.compressor.compressor:automatic_compression:683 - Compressing automatic-based model...
2024-05-03 06:14:45.276 | INFO | netspresso.clients.auth.main:get_user_info:55 - Successfully got user information
2024-05-03 06:14:45.279 | INFO | netspresso.compressor.compressor:upload_model:64 - Uploading Model...
2024-05-03 06:15:04.496 | INFO | netspresso.compressor.compressor:upload_model:79 - Upload model successfully. Model ID: 9b6477cb-5fde-4f56-a80d-49d9cea04b11
2024-05-03 06:15:04.496 | INFO | netspresso.compressor.compressor:automatic_compression:714 - Compressing model...
2024-05-03 06:15:28.669 | INFO | netspresso.compressor.compressor:get_compression:262 - Getting compression...
2024-05-03 06:15:29.133 | INFO | netspresso.compressor.compressor:get_compression:274 - Get compression successfully.
2024-05-03 06:15:29.135 | INFO | netspresso.compressor.compressor:download_model:136 - Downloading model...
2024-05-03 06:15:31.414 | INFO | netspresso.compressor.compressor:download_model:143 - Model downloaded at board_test/compression_0.1 (1)/compression_0.1 (1).onnx
2024-05-03 06:15:31.415 | ERROR | netspresso.compressor.compressor:automatic_compression:758 - Automatic compression failed. Error: [Errno 2] No such file or directory: 'board_test/compression_0.1 (1)/compression_0.1 (1).pt'
Traceback (most recent call last):
File "/ssd1/junho.shin/netspresso-trainer/compression.py", line 10, in <module>
compression_result = compressor.automatic_compression(
File "/ssd1/junho.shin/anaconda3/envs/np_trainer/lib/python3.8/site-packages/netspresso/compressor/compressor.py", line 761, in automatic_compression
raise e
File "/ssd1/junho.shin/anaconda3/envs/np_trainer/lib/python3.8/site-packages/netspresso/compressor/compressor.py", line 726, in automatic_compression
converter_uploaded_model = self._get_available_devices(compressed_model, default_model_path)
File "/ssd1/junho.shin/anaconda3/envs/np_trainer/lib/python3.8/site-packages/netspresso/compressor/compressor.py", line 319, in _get_available_devices
export_onnx(default_model_path, compressed_model.input_shapes)
File "/ssd1/junho.shin/anaconda3/envs/np_trainer/lib/python3.8/site-packages/netspresso/compressor/utils/onnx.py", line 34, in export_onnx
model = torch.load(file_path.with_suffix(".pt"))
File "/ssd1/junho.shin/anaconda3/envs/np_trainer/lib/python3.8/site-packages/torch/serialization.py", line 771, in load
with _open_file_like(f, 'rb') as opened_file:
File "/ssd1/junho.shin/anaconda3/envs/np_trainer/lib/python3.8/site-packages/torch/serialization.py", line 270, in _open_file_like
return _open_file(name_or_buffer, mode)
File "/ssd1/junho.shin/anaconda3/envs/np_trainer/lib/python3.8/site-packages/torch/serialization.py", line 251, in __init__
super(_open_file, self).__init__(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: 'board_test/compression_0.1 (1)/compression_0.1 (1).pt'
System Info
Latest release (v1.6.0)
I think the problem occurred because try to load model with wrong file name.
Save with .onnx format
https://github.com/Nota-NetsPresso/PyNetsPresso/blob/1fb6b1b3675b42fc97d4919b0b1b11b90306991c/netspresso/compressor/compressor.py#L423-L426
And trying to load with .pt file name
https://github.com/Nota-NetsPresso/PyNetsPresso/blob/1fb6b1b3675b42fc97d4919b0b1b11b90306991c/netspresso/compressor/compressor.py#L319-L325
https://github.com/Nota-NetsPresso/PyNetsPresso/blob/1fb6b1b3675b42fc97d4919b0b1b11b90306991c/netspresso/compressor/utils/onnx.py#L32-L40
@Only-bottle If you okay, I will submit PR of this issue.
@illian01 Okay, please submit PR. Thank you!! 🙇🏻