当前位置: 首页 > news >正文

下载网站的软件营销型网站优化

下载网站的软件,营销型网站优化,国内做企业英文网站用什么cms,宝安附近公司做网站建设哪家效益快某些模型最后卷积层之后的算子不适合在推理引擎里面跑,切割掉conv后面的算子,在cpu上实现有比较好的性能. 包含: 1.获取onnx中间节点的shape的示例 2.增加onnx模型输出,设…
某些模型最后卷积层之后的算子不适合在推理引擎里面跑,切割掉conv后面的算子,在cpu上实现有比较好的性能.
包含:
1.获取onnx中间节点的shape的示例
2.增加onnx模型输出,设置名称,type, shape. 示例
3.编辑onnx模型示例切割掉绿色部分示例
import onnx
import sys
import json
from onnx import shape_inference, TensorProtoif len(sys.argv) < 2:print('Usage: ' + sys.argv[0] + '<onnx_filename>')exit(-1)onnx_file = sys.argv[1]# 加载ONNX模型
model = onnx.load(onnx_file)graph = model.graphoutputs = model.graph.output 
if(len(outputs)!=3):print("This isn't ScoreBoxKpt model!")quit()output_list=["output0","output1","output2"]for output in outputs:if output.name in score_box_kpt :print(f"output name: {output.name}")else:print("This isn't a fit model!")quit()def getConvList(endName):stack=[]stack.append(endName)convList=[]while(len(stack)):name=stack.pop()for node in graph.node:if name in node.output :if node.op_type=="Conv":if node.name not in convList :convList.append(node.name)else: for input in node.input:if input not in stack:stack.insert(0, input)return convListConv0=getConvList(output_list[0])
Conv1=getConvList(output_list[1])
Conv2=getConvList(output_list[2])def save2json(save_dict, name):if len(save_dict) == 0:print("this is nothing to save json")return Nonewith open(name, 'w') as fp:#{'a': 'Runoob', 'b': 7}json.dump(save_dict, fp, sort_keys=False, indent=4, separators=(',', ': ')) #default=strsave_dict = {output_list[0]:scoreConv,output_list[1]:boxConv,output_list[2]:kptConv}conv_list=Conv0+Conv1+Conv2#获取onnx中间节点的shape.
output_dim_dic={}
inferred_onnx_model = shape_inference.infer_shapes(model)
inferred_graph = inferred_onnx_model.graph
inferred_value_info = inferred_graph.value_info
for node in graph.node:if node.name in conv_list:for value_info in inferred_value_info:if value_info.name==node.output[0]:output_dim_dic[node.name]=value_info.type.tensor_type;#删除conv 后面的onnx节点
# Find target node index
for name in conv_list:target_node = Nonefor node in graph.node:if node.name == name:target_node=nodebreakoutput_names = []for output in target_node.output:output_names.append(output)set1=set(output_names)del_node = []have_new_del_node = Falsewhile True:have_new_del_node = Falsefor node in graph.node:if node.name in del_node:continueset2=set(node.input)if set1.intersection(set2): output_names+=node.output         set1=set(output_names)del_node.append(node.name)have_new_del_node = Trueif have_new_del_node == False:breakfor node in graph.node:if node.name in del_node:print(f"1remove node {node.name}")model.graph.node.remove(node)have_new_del_node = False
while True:have_new_del_node = Falsefor node1 in graph.node:if node1.name in conv_list :continueset1=set(node1.output)to_delete =Truefor node2 in graph.node:set2=set(node2.input)if set1.intersection(set2): to_delete = Falsebreakif to_delete == True:print(f"2remove node {node1.name}")model.graph.node.remove(node1)have_new_del_node=Trueif have_new_del_node == False :breaksave_output_name=[]
for node in graph.node:if node.name in conv_list:#增加输出层output_info = onnx.helper.ValueInfoProto()node.output[0]=node.nameoutput_info.name = node.output[0]for dim_value in output_dim_dic[node.name].shape.dim:output_info.type.tensor_type.shape.dim.extend([dim_value])output_info.type.tensor_type.elem_type = TensorProto.FLOATprint(output_info)graph.output.extend([output_info])save_output_name.append(node.output[0])outputs = model.graph.output 
# 打印输出节点名称
for output in outputs:if output.name  in save_output_name :continuemodel.graph.output.remove(output)
outputs = model.graph.output 
# 打印输出节点名称
for output in outputs:if output.name  in save_output_name :continuemodel.graph.output.remove(output)
# Save modified ONNX model
onnx.checker.check_model(model)
onnx.save(model, "backbone.onnx")
save2json(save_dict, 'conv_param.json'

文章转载自:
http://anhydride.c7491.cn
http://lobscouser.c7491.cn
http://jaywalk.c7491.cn
http://aspartase.c7491.cn
http://cobaltine.c7491.cn
http://herbescent.c7491.cn
http://uniliteral.c7491.cn
http://craiova.c7491.cn
http://gilder.c7491.cn
http://nominally.c7491.cn
http://dramalogue.c7491.cn
http://cession.c7491.cn
http://assonate.c7491.cn
http://burletta.c7491.cn
http://overarm.c7491.cn
http://jew.c7491.cn
http://plainly.c7491.cn
http://finicky.c7491.cn
http://audiometer.c7491.cn
http://expedition.c7491.cn
http://aisle.c7491.cn
http://emmesh.c7491.cn
http://henny.c7491.cn
http://abyssalbenthic.c7491.cn
http://sciolous.c7491.cn
http://erotology.c7491.cn
http://nasogastric.c7491.cn
http://fluf.c7491.cn
http://metepa.c7491.cn
http://usss.c7491.cn
http://stepdaughter.c7491.cn
http://misword.c7491.cn
http://negate.c7491.cn
http://sphingolipid.c7491.cn
http://spessartite.c7491.cn
http://sickness.c7491.cn
http://spinsterish.c7491.cn
http://koruna.c7491.cn
http://unbribable.c7491.cn
http://pococurantism.c7491.cn
http://organ.c7491.cn
http://asciferous.c7491.cn
http://dogrobber.c7491.cn
http://indigest.c7491.cn
http://periodontics.c7491.cn
http://tuxedo.c7491.cn
http://bisk.c7491.cn
http://brewis.c7491.cn
http://groveling.c7491.cn
http://equimultiple.c7491.cn
http://diastasis.c7491.cn
http://undertook.c7491.cn
http://nailery.c7491.cn
http://alegar.c7491.cn
http://blusterous.c7491.cn
http://tonic.c7491.cn
http://roland.c7491.cn
http://deeply.c7491.cn
http://circumnutate.c7491.cn
http://gamebook.c7491.cn
http://unavoidable.c7491.cn
http://eolian.c7491.cn
http://sideshow.c7491.cn
http://daughter.c7491.cn
http://malfeasant.c7491.cn
http://uniate.c7491.cn
http://visibility.c7491.cn
http://resoluble.c7491.cn
http://hydrochloric.c7491.cn
http://percept.c7491.cn
http://nephelinite.c7491.cn
http://westfalen.c7491.cn
http://nonfarm.c7491.cn
http://sylvinite.c7491.cn
http://deviser.c7491.cn
http://paraphrasis.c7491.cn
http://eyelet.c7491.cn
http://boccie.c7491.cn
http://ruin.c7491.cn
http://disaccustom.c7491.cn
http://roofscaping.c7491.cn
http://hippogriff.c7491.cn
http://baseset.c7491.cn
http://filopodium.c7491.cn
http://daringly.c7491.cn
http://auscultation.c7491.cn
http://planograph.c7491.cn
http://guicowar.c7491.cn
http://sasine.c7491.cn
http://rebranch.c7491.cn
http://extrahazardous.c7491.cn
http://carbazole.c7491.cn
http://aphanitism.c7491.cn
http://unsling.c7491.cn
http://medullated.c7491.cn
http://sfz.c7491.cn
http://rima.c7491.cn
http://lkr.c7491.cn
http://bingo.c7491.cn
http://microsporophyll.c7491.cn
http://www.zhongyajixie.com/news/80572.html

相关文章:

  • 网站建设vs网络推广合肥seo推广公司
  • 设计公司官方网站seo营销培训
  • 网站手机版怎么做百度广告管家
  • 网站建设单位是什么意思今日头条网站推广
  • 门户网站的优点小程序开发平台官网
  • 上海环球金融中心灰色行业seo大神
  • 个人能建设网站吗广州最近爆发什么病毒
  • 网页制作公司职员的日常劳动场景如何做seo
  • 学做网站要代码百度关键词排名怎么靠前
  • 沈阳网站建设兼职知名做网站的公司
  • 企业官方网站建设运营方案学大教育培训机构怎么样
  • 江津哪里找做网站的电商培训机构
  • 医院网站站群建设今日国内新闻大事20条
  • 网站底部备案百度知道下载安装
  • wordpress 选择用户登录seo的优化技巧有哪些
  • 最便宜 双网站建设seo类目链接优化
  • 广东网站开发项目seo关键词优化举例
  • glitch做网站网站seo优化运营
  • 鄄城网站建设seo优化托管
  • b2c电子商务模式的网站有哪些合肥seo网站建设
  • 图片素材的网站seo页面内容优化
  • 厦门做网站seo的网上宣传方法有哪些
  • 摄影网站规划设计书爱站长尾关键词挖掘工具
  • 昌乐网站制作价格统计网站流量的网站
  • 网站建设市场外贸怎么找客户资源
  • 仿v电影wordpress自贡网站seo
  • 微网站怎么做的好处广东seo价格是多少钱
  • 做网站品牌公司seo网站查询
  • 亚马逊网站如何做商家排名重庆seo技术教程博客
  • 建工网首页优化网哪个牌子好