"""
Export onnx from ckpt
"""
import hydra
import os
import torch
from deepspeech_pytorch.configs.inference_config import EvalConfig
from deepspeech_pytorch.utils import load_model
import argparse
parser = argparse.ArgumentParser(description='Deepspeech')
parser.add_argument('--ckpt_path', default='./an4_pretrained_v3.ckpt', type=str, help='infer out path')
parser.add_argument('--out_file', default='deepspeech.onnx', type=str, help='infer info path')
args = parser.parse_args()
if __name__ == '__main__':
device = torch.device("cpu")
model = load_model(device=device, model_path=args.ckpt_path)
model.eval()
model = model.to(device)
print('Finished loading model!')
input_names = ["spect", "transcript"]
output_names = ["out"]
dynamic_axes = {'spect': {0: '-1'}}
dummy_input = torch.randn(1, 1, 161, 621).to(device)
dummy_input2 = torch.tensor([621], dtype=torch.int32).to(device)
output_file = args.out_file
torch.onnx.export(model, [dummy_input, dummy_input2], output_file,
input_names=input_names, dynamic_axes=dynamic_axes,
output_names=output_names, opset_version=11, verbose=True)