pytorch转为onnx格式:

  def Torch2Onnx(model,input_size,output_name,istrained=True):

  '''

  :param: model

  :param: input_size .e.t. (244,244)

  :param: output_name .e.t. "test_output"

  :param: if convert a trained model or not. default: True

  '''

  x = Variable(torch.randn(1,3,input_size[0],input_size[1])).cuda()

  if istrained:

  torch_out = torch.onnx.export(model,x,output_name,verbose=True)

  else:

  torch_out = torch.onnx.export(model,x,output_name,export_params=False,verbose=True) # Only export a untrained model.

  使用举例:

  model = model()

  model.load_state_dict(torch.load(weight_path))

  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

  model = model.to(device)

  input_size = (384,288)

  Torch2Onnx(model,input_size,"test.onnx")

  获取model中的params:

  请注意:不同的方法默认model在cpu还是在cuda上是不一样的,如果出现类似RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same的报错,请检查weight是否应该在cuda上。

  方法一:使用torchsummary

  使用pip安装torchsummary:

  pip install torchsummary

  代码片段:

  from torchsummary import summary

  model = model()

  model.load_state_dict(torch.load(weight_path))

  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

  model = model.to(device)

  summary(model,(3,384,288))

  大连妇科医院哪家好 https://m.120ask.com/zhenshi/dlfk/


  方法二:使用torchstat

  使用pip安装torchstat:

  pip install torchstat

  代码片段(和summary差不多)

  from torchsummary import summary

  model = model()

  model.load_state_dict(torch.load(weight_path))

  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

  stat(model,(3,384,288))

  


  方法三:使用thop(不太推荐)

  使用pip安装thop:

  pip install thop

  代码片段:

  from thop import profile,clever_format

  model = model()

  model.load_state_dict(torch.load(weight_path))

  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

  flops, params = profile(model,inputs=())

  flops,params = clever_format(flops,params,"%.3f")

©著作权归作者所有:来自51CTO博客作者ckllf的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Python实现双因素方法分析(Two-Way)
  2. select使用方法
  3. Nginx编译报错解决方法
  4. 熟悉composer常用指令,安装组件,并理解自动加载器的使用方式与更
  5. 笔记 | Python之类的初识
  6. 详解javascript的bind方法
  7. 计算机端口号的分类和测试方法
  8. php中的类及trait
  9. 子类初始化父类的二种方法

随机推荐

  1. 骚操作!嵌套 JSON 秒变 Dataframe!
  2. PMP证书获得历程
  3. 如何实时主动监控你的网站接口是否挂掉并
  4. 再见 VBA!神器工具统一 Excel 和 Python
  5. Python分析5000+抖音大V,发现大家都喜欢这
  6. 原来炫酷的可视化地图,用Python就能搞定!
  7. 太骚了!Python模型完美切换SAS,还能这么玩
  8. pandas100个骚操作:变量类型自动转换
  9. Android(安卓)View中的onMeasure()方法详
  10. 原创丨带你体验一下云上编码的感觉