@@ -1669,7 +1669,7 @@ def convert_outputs(self, outputs):
1669
1669
1670
1670
# Store model
1671
1671
def save (self , path , use_onnx = False , path_onnx = None , use_openvino = False , path_openvino = None ,
1672
- use_safetensors = False , path_safetensors = None ,
1672
+ use_safetensors = False , path_safetensors = None , pickle_metadata = False ,
1673
1673
batch_size = None , opset_version = 13 , pickle_module = dill , ignore_attributes = None , ** kwargs ):
1674
1674
""" Save underlying PyTorch model along with meta parameters (config, device spec, etc).
1675
1675
@@ -1730,12 +1730,13 @@ def save(self, path, use_onnx=False, path_onnx=None, use_openvino=False, path_op
1730
1730
path_onnx = path_onnx or (path + '_onnx' )
1731
1731
torch .onnx .export (self .model .eval (), inputs , path_onnx , opset_version = opset_version )
1732
1732
1733
- # Save the rest of parameters
1734
- preserved = self .PRESERVE_ONNX - ignore_attributes
1733
+ if pickle_metadata :
1734
+ # Save the rest of parameters
1735
+ preserved = self .PRESERVE_ONNX - ignore_attributes
1735
1736
1736
- preserved_dict = {item : getattr (self , item ) for item in preserved }
1737
- torch .save ({'onnx' : True , 'path_onnx' : path_onnx , 'onnx_batch_size' : batch_size , ** preserved_dict },
1738
- path , pickle_module = pickle_module , ** kwargs )
1737
+ preserved_dict = {item : getattr (self , item ) for item in preserved }
1738
+ torch .save ({'onnx' : True , 'path_onnx' : path_onnx , 'onnx_batch_size' : batch_size , ** preserved_dict },
1739
+ path , pickle_module = pickle_module , ** kwargs )
1739
1740
1740
1741
elif use_openvino :
1741
1742
import openvino as ov
@@ -1753,20 +1754,23 @@ def save(self, path, use_onnx=False, path_onnx=None, use_openvino=False, path_op
1753
1754
1754
1755
ov .save_model (model , output_model = path_openvino )
1755
1756
1756
- # Save the rest of parameters
1757
- preserved = self .PRESERVE_OPENVINO - ignore_attributes
1758
- preserved_dict = {item : getattr (self , item ) for item in preserved }
1759
- torch .save ({'openvino' : True , 'path_openvino' : path_openvino , ** preserved_dict },
1760
- path , pickle_module = pickle_module , ** kwargs )
1757
+ if pickle_metadata :
1758
+ # Save the rest of parameters
1759
+ preserved = self .PRESERVE_OPENVINO - ignore_attributes
1760
+ preserved_dict = {item : getattr (self , item ) for item in preserved }
1761
+ torch .save ({'openvino' : True , 'path_openvino' : path_openvino , ** preserved_dict },
1762
+ path , pickle_module = pickle_module , ** kwargs )
1761
1763
1762
1764
elif use_safetensors :
1763
1765
from safetensors .torch import save_file
1764
1766
state_dict = self .model .state_dict ()
1765
1767
1766
1768
path_safetensors = path_safetensors or (path + "safetensors" )
1767
1769
save_file (state_dict , path_safetensors )
1768
- torch .save ({'safetensors' : True , 'path_safetensors' : path_safetensors , ** preserved_dict },
1769
- path , pickle_module = pickle_module , ** kwargs )
1770
+
1771
+ if pickle_metadata :
1772
+ torch .save ({'safetensors' : True , 'path_safetensors' : path_safetensors , ** preserved_dict },
1773
+ path , pickle_module = pickle_module , ** kwargs )
1770
1774
1771
1775
else :
1772
1776
preserved = set (self .PRESERVE ) - set (ignore_attributes )
0 commit comments