首页 > 其他分享 >EfficientNet环境搭建&网络修改

EfficientNet环境搭建&网络修改

时间:2024-02-22 19:11:47浏览次数:29  
标签:node onnx 修改 names input output model EfficientNet 搭建

引子 在深度学习CV领域,最初2012年突破的就是图像分类,发展这么多年,基本上已经没有什么进展了。此篇作为之前EfficientNet挽留过的总结,现在整理下,OK,让我们开始吧。 一、EfficientNet安装 1、pytorch版本网址:https://github.com/lukemelas/EfficientNet-PyTorch 2、pip install efficientnet_pytorch 二、特征提取网络修改 1、修改EfficientNet原始代码model.py中extract_features函数如下图:

新增红框中pool层,修改特征输出维度,重新训练,训练log如下:

2、pth模型转onnx
import torch
from efficientnet_pytorch import EfficientNet
import torch.nn as nn

net_path=r'efficientnet-b0_1.pth'
model=torch.load(net_path)

model.set_swish(memory_efficient=False)
model.eval()
    
input_names = ["input"]
output_names = ["output"]
onnx_names= "NonplateColor.onnx"
dynamic = True
if dynamic:
    dummy_input = torch.randn(1, 3, 224, 224, device='cuda')
    dynamic_axes = {"input":{0:"batch_size"},"output":{0:"batch_size"}}
    torch.onnx.export(  model, 
                        dummy_input, 
                        onnx_names, 
                        verbose=False, 
                        input_names=input_names, 
                        output_names=output_names,
                        dynamic_axes=dynamic_axes,
                        do_constant_folding= True,
                        opset_version=10,
                        )   
else:   
    dummy_input = torch.randn(1, 3, 224, 224, device='cuda')
    torch.onnx.export(model, dummy_input, onnx_names, verbose=True, input_names=input_names, output_names=output_names)
3、onnx模型删减网络层
import onnx

onnx_model = onnx.load("EfficientNetType1115.onnx")
graph = onnx_model.graph
node  = graph.node

# 909节点为要删除的Conv节点
old_scale_node = node[254]
old_scale_node1 = node[255]
old_scale_node2 = node[256]
# 删除旧节点
graph.node.remove(old_scale_node)  
graph.node.remove(old_scale_node1)
graph.node.remove(old_scale_node2)
# 上一节点
gap_node = node[253]
# 连接输出
gap_node.output[0] = 'output'

# 修改输出维度
for output in onnx_model.graph.output:
    d = output.type.tensor_type.shape.dim
    # d[0].dim_value= 'batch_size'
    d[1].dim_value = 1280

# 保存新的模型
onnx.checker.check_model(onnx_model)
onnx.save(onnx_model, 'out.onnx')

 

 

标签:node,onnx,修改,names,input,output,model,EfficientNet,搭建
From: https://www.cnblogs.com/nick-algorithmer/p/18027964

相关文章

  • ElasticSearch集群搭建
    1环境和版本1.1操作系统干干静静的centos7系统,选取的是mini的iso最小化安装CentOSLinuxrelease7.9.2009(Core)1.2ElasticSearch版本本文使用的版本是8.11.3,下载地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html1.3......
  • HydroOJ 从入门到入土(14)批量修改题目难度
    老师,这排名咋算的?为啥我在他后边??很多学生比较关注排名,而排名又受到各种因素影响,其中最不可控的是题目难度(源码)。因为题目难度默认为0,也就是自动计算,但自动计算题目难度的时候,是从10倒数的,AC率高了才会逐渐下降,但也基本不太会降到1。而手动定过难度的题目,基本都从1开始......
  • 安装Windows Server 2025 搭建云桌面平台
    介绍WindowsServer2025为Hyper-V带来了多项增强功能和新的存储特性,主要用于优化虚拟机的运行体验。这些新特性涵盖GPU虚拟化、新的ReFS去重功能,以及在非AD域的集群上进行虚拟机实时迁移。云桌面方案的用户最关心的GPU-P的技术也将在WindowsServer2025中正式推出。......
  • 银河麒麟桌面版操作系统修改主机名
    1图形化方式修改1.1在计算机图标上右键,选择属性1.2修改1.2.1点击修改计算机名选择玩属性后会自动跳转到关于中,在计算机名中点击修改图标本质就是设置里面的系统下的关于,我们右键计算机选择属性就直接跳转过来了1.2.2修改系统名字这里修改为user-pcOS1.2.3重启生效......
  • 搭建我们自己的第一个three项目
    搭建项目我们要学习three,那么我们势必需要在本地搭建一个自己的项目。首先我们需要在我们自己的电脑中安装node,创建一个node环境。这个自行从网上百度,这里就不再介绍了。(简单的一批,自行百度吧,如果不会,那么也不要学习three了)Parcel这里我们使用Parcel来打包我们的项目(你也可以......
  • 认识three.js和本地环境搭建
    要学习three.js首先我们要了解几个概念什么是3d,什么是webgl,那么three.js又是什么。下面我们来一一介绍。首先什么是3d?3D,全称为Three-Dimensional,即三维,是指在空间中具有三个维度(长度、宽度和高度)的概念。在现实世界中,我们所处的就是一个三维空间,物体都有立体形态,可以从不同的......
  • SDWAN组网是怎么降低网络搭建成本
    在当今数字化时代,企业的网络架构扮演着至关重要的角色,直接影响到业务的高效运转和信息的安全传输。然而,传统的网络架构往往伴随着高昂的搭建和维护成本,对于许多企业来说是一个不小的负担。而SD-WAN组网作为一种新型的网络架构技术,为企业降低网络搭建成本提供了良好的解决方案。 ......
  • C++开发基础知识(修改)
    2024-01-0820:13星期一博客内容来自相关书籍和网站内容总结,仅供个人参考使用:笔者@StuBoo使用目录快速转到技术面试问题汇总、算法笔记1.C++语言基础1.1语言特性面向对象编程(OOP):C++支持面向对象编程,包括封装、继承和多态。通过类和对象,可以将数据和方法组织成单个单元,......
  • 【技巧】金融企业在搭建服务器时,选择私有云方案还是全栈专属云?
    金融企业在搭建服务器时,选择私有云方案还是全栈专属云,需要根据企业的具体需求和情况进行综合考虑。CloudAce云一作为谷歌云全球战略合作伙伴,专注于企业级出海云服务 ,为大家带来两种方案的优劣势比较:私有云优势安全性高:私有云的资源由企业自建和管理,可以完全控制数据......
  • windows 通过 bat 快速修改 ip 地址
    先将以下内容填写到一个txt文件中,然后另存为修改网络IP.bat文件编码选择ANSI否则会出现乱码。@echooffrem强制获取管理员权限%1mshtavbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c%~s0::","","runas",1)(window.close)&&am......