gptq_model / utils /export.py
ssaroya's picture
Upload 4 files
765e3c5
raw
history blame
1.02 kB
import numpy as np
import toml
import os
def export_quant_table(quantizers: dict, quant_dir: str, format: str = 'toml'):
table = {}
def save_tensor(name: str, tensor):
np.save(os.path.join(quant_dir, name), tensor.numpy())
return '{}.npy'.format(name)
for key, value in quantizers.items():
quantizer = value[0]
dump = dict()
sym = quantizer.sym
if not sym:
dump['zero'] = save_tensor(name=key + '.zero', tensor=value[2])
dump['scale'] = save_tensor(name=key + '.scale', tensor=value[1])
dump['wbits'] = value[4]
dump['groupsize'] = value[5]
if value[5] > 0:
dump['group_ids'] = save_tensor(name=key + '.group_ids', tensor=value[3])
dump['sym'] = sym
dump['perchannel'] = quantizer.perchannel
table[key] = dump
if not os.path.exists(quant_dir):
os.mkdir(quant_dir)
with open(os.path.join(quant_dir, 'quant.toml'), 'w') as f:
toml.dump(table, f)