mirror of
https://github.com/huggingface/transformers.git
synced 2025-07-31 02:02:21 +06:00
CL util to convert models to fp16 before upload (#5953)
This commit is contained in:
parent
4302ace5bd
commit
11792d7826
21
examples/seq2seq/convert_model_to_fp16.py
Normal file
21
examples/seq2seq/convert_model_to_fp16.py
Normal file
@ -0,0 +1,21 @@
|
||||
from typing import Union
|
||||
|
||||
import fire
|
||||
import torch
|
||||
from tqdm import tqdm
|
||||
|
||||
|
||||
def convert(src_path: str, map_location: str = "cpu", save_path: Union[str, None] = None) -> None:
|
||||
"""Convert a pytorch_model.bin or model.pt file to torch.float16 for faster downloads, less disk space."""
|
||||
state_dict = torch.load(src_path, map_location=map_location)
|
||||
for k, v in tqdm(state_dict.items()):
|
||||
if not isinstance(v, torch.Tensor):
|
||||
raise TypeError("FP16 conversion only works on paths that are saved state dics, like pytorch_model.bin")
|
||||
state_dict[k] = v.half()
|
||||
if save_path is None: # overwrite src_path
|
||||
save_path = src_path
|
||||
torch.save(state_dict, save_path)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
fire.Fire(convert)
|
Loading…
Reference in New Issue
Block a user