|
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) |
|
|