check_lora_weights.py 959 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import argparse
  2. import os
  3. import torch
  4. from safetensors.torch import load_file
  5. def main(file):
  6. print(f"loading: {file}")
  7. if os.path.splitext(file)[1] == '.safetensors':
  8. sd = load_file(file)
  9. else:
  10. sd = torch.load(file, map_location='cpu')
  11. values = []
  12. keys = list(sd.keys())
  13. for key in keys:
  14. if 'lora_up' in key or 'lora_down' in key:
  15. values.append((key, sd[key]))
  16. print(f"number of LoRA modules: {len(values)}")
  17. for key, value in values:
  18. value = value.to(torch.float32)
  19. print(f"{key},{str(tuple(value.size())).replace(', ', '-')},{torch.mean(torch.abs(value))},{torch.min(torch.abs(value))}")
  20. def setup_parser() -> argparse.ArgumentParser:
  21. parser = argparse.ArgumentParser()
  22. parser.add_argument("file", type=str, help="model file to check / 重みを確認するモデルファイル")
  23. return parser
  24. if __name__ == '__main__':
  25. parser = setup_parser()
  26. args = parser.parse_args()
  27. main(args.file)