| import argparse |
| import torch |
| import torch.onnx |
| from basicsr.archs.rrdbnet_arch import RRDBNet |
|
|
|
|
| def main(args): |
| |
| model = RRDBNet(num_in_ch=3, num_out_ch=3, num_feat=64, num_block=23, num_grow_ch=32, scale=4) |
| if args.params: |
| keyname = 'params' |
| else: |
| keyname = 'params_ema' |
| model.load_state_dict(torch.load(args.input)[keyname]) |
| |
| model.train(False) |
| model.cpu().eval() |
|
|
| |
| x = torch.rand(1, 3, 64, 64) |
| |
| with torch.no_grad(): |
| torch_out = torch.onnx._export(model, x, args.output, opset_version=11, export_params=True) |
| print(torch_out.shape) |
|
|
|
|
| if __name__ == '__main__': |
| """Convert pytorch model to onnx models""" |
| parser = argparse.ArgumentParser() |
| parser.add_argument( |
| '--input', type=str, default='experiments/pretrained_models/RealESRGAN_x4plus.pth', help='Input model path') |
| parser.add_argument('--output', type=str, default='realesrgan-x4.onnx', help='Output onnx path') |
| parser.add_argument('--params', action='store_false', help='Use params instead of params_ema') |
| args = parser.parse_args() |
|
|
| main(args) |
|
|