palette-generator / export.py
nassimberrada's picture
Add training files
97a1f3a verified
Raw
History Blame Contribute Delete
1.41 kB
import torch
import onnx
import os
from train import PaletteGenerator
def export_to_onnx():
print("--- 1. Loading Model ---")
device = torch.device("cpu")
model = PaletteGenerator().to(device)
model.load_state_dict(torch.load("model.pth", map_location=device))
model.eval()
dummy_input_ids = torch.randint(0, 1000, (1, 10), dtype=torch.long).to(device)
dummy_mask = torch.ones((1, 10), dtype=torch.long).to(device)
temp_filename = "palette_model_temp.onnx"
final_filename = "palette_model.onnx"
print(f"\n--- 2. Exporting ---")
torch.onnx.export(
model,
(dummy_input_ids, dummy_mask),
temp_filename,
export_params=True,
opset_version=17,
do_constant_folding=True,
input_names=['input_ids', 'attention_mask'],
output_names=['output'],
dynamic_axes={
'input_ids': {0: 'batch_size', 1: 'sequence_length'},
'attention_mask': {0: 'batch_size', 1: 'sequence_length'},
'output': {0: 'batch_size'}
}
)
print(f"\n--- 3. Merging External Weights ---")
model_proto = onnx.load(temp_filename)
onnx.save(model_proto, final_filename)
size_mb = os.path.getsize(final_filename) / (1024 * 1024)
print(f"Final File: {final_filename}")
print(f"Size: {size_mb:.2f} MB")
if __name__ == "__main__":
export_to_onnx()