app.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env python
  2. ''' Expermiental Python Server backend test '''
  3. import os
  4. import sys
  5. root_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
  6. source_dir = os.path.join(root_dir, 'source')
  7. third_party_dir = os.path.join(root_dir, 'third_party')
  8. package_dir = os.path.join(root_dir, 'dist', 'backend')
  9. if not os.path.exists(package_dir):
  10. os.makedirs(package_dir)
  11. os.symlink(source_dir, package_dir + '/netron')
  12. sys.path.append(package_dir)
  13. import netron # pylint: disable=wrong-import-position disable=import-error
  14. def _test_onnx():
  15. file = os.path.join(third_party_dir, 'test', 'onnx', 'candy.onnx')
  16. import onnx # pylint: disable=import-outside-toplevel
  17. model = onnx.load(file)
  18. netron.serve('x.onnx', model, browse=True)
  19. def _test_onnx_list():
  20. folder = os.path.join(third_party_dir, 'test', 'onnx')
  21. for item in os.listdir(folder):
  22. file = os.path.join(folder, item)
  23. if file.endswith('.onnx') and item != 'super_resolution.onnx':
  24. print(item)
  25. import onnx # pylint: disable=import-outside-toplevel
  26. model = onnx.load(file)
  27. address = netron.serve('x.onnx', model)
  28. netron.stop(address)
  29. print()
  30. def _test_torchscript():
  31. import torch # pylint: disable=import-outside-toplevel disable
  32. import torchvision # pylint: disable=import-outside-toplevel
  33. model = torchvision.models.resnet34(weights=torchvision.models.ResNet34_Weights.DEFAULT)
  34. args = torch.zeros([1, 3, 224, 224]) # pylint: disable=no-member
  35. graph = torch.jit._get_trace_graph(model, args) # pylint: disable=protected-access
  36. # graph = torch.onnx._optimize_trace(graph, torch.onnx.OperatorExportTypes.ONNX)
  37. # https://github.com/pytorch/pytorch/blob/master/torch/csrc/jit/ir/ir.h
  38. netron.serve('x.pt', graph, browse=True)
  39. # _test_onnx()
  40. # _test_torchscript()
  41. _test_onnx_list()