如何将模型可视化工具Netron改造为通用的WEB服务(Flask)?

简介: 很多时候,我们需要复现人家的工程。因此,需要了解人家的网络结构。但不同框架之间可视化网络层方法不一样,这样给研究人员造成了很大的困扰。模型可视化工具Netron很好的解决了上述问题。Netron是微软小哥lutzroeder的一个广受好评的开源项目。目前,Netron支持各种主流机器学习、深度学习框架的模型结构可视化工作。

很多时候,我们需要复现人家的工程。因此,需要了解人家的网络结构。但不同框架之间可视化网络层方法不一样,这样给研究人员造成了很大的困扰。模型可视化工具Netron很好的解决了上述问题。Netron是微软小哥lutzroeder的一个广受好评的开源项目。目前,Netron支持各种主流机器学习、深度学习框架的模型结构可视化工作。

Netron可视化模型的方式也很多,主要有:

  • 在线可视化模型(浏览器)
  • 离线APP可视化模型(支持Mac、Linux、Windows)
  • 使用Netron API可视化模型(Python Server)

支持的模型文件格式有: ONNX, TensorFlow Lite, Caffe, Keras, Darknet, PaddlePaddle, ncnn, MNN, Core ML, RKNN, MXNet, MindSpore Lite, TNN, Barracuda, Tengine, CNTK, TensorFlow.js, Caffe2 和 UFF。

除此之外,Netron还提供了一些试验性的模型文件格式支持:PyTorch, TensorFlow, TorchScript, OpenVINO, Torch, Vitis AI, Arm NN, BigDL, Chainer, Deeplearning4j, MediaPipe, ML.NET 和 scikit-learn。

详情请参见netron官网:点击进入

如果需要将Netron集成到项目之中,我们通常会选择Python Server方式。但是在集成时,会发现存在一些问题。

第一,我们打开一个模型(import netron;netron.start('[FILE]') ),进行可视化,它就会启动一个服务,并且自动打开浏览器,可视化模型。如果我们想同时查看多个模型,就需要启动多个服务,并且占用不同的端口。因此,集成到项目之中不太友好。

第二,如果我们启动Python Server(import netron; netron.start() ),不提前指定模型,当我们打开浏览器的时候,则需要自己选择模型路径进行渲染,这样就会导致交互流程太长。

针对如上两个问题,本项目netron-flask,通过改造netron项目。将原有的http.server改成Flask框架,并且修改前端交互模式,提供直接通过请求HTTP接口的方式直接渲染模型。

相关文章
|
1月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
31 0
|
1月前
|
监控 Serverless 测试技术
Serverless 应用引擎常见问题之做的web服务计费如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
407 3
|
17天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
10天前
|
缓存 监控 数据库
Flask性能优化:打造高性能Web应用
【4月更文挑战第16天】本文介绍了提升Flask应用性能的七大策略:优化代码逻辑,减少数据库查询,使用WSGI服务器(如Gunicorn、uWSGI),启用缓存(如Flask-Caching),优化数据库操作,采用异步处理与并发(如Celery、Sanic),以及持续监控与调优。通过这些手段,开发者能有效优化Flask应用,适应大型或高并发场景,打造高性能的Web服务。
|
10天前
|
SQL 关系型数据库 数据库
Flask模型关系与复杂查询技巧
【4月更文挑战第16天】本文探讨了Flask中使用SQLAlchemy进行模型关系管理与复杂查询的方法。SQLAlchemy作为ORM工具,简化了数据库操作。模型关系包括一对一、一对多和多对多,通过定义类间关系实现。文章还介绍了join、子查询、聚合函数、分组与排序等查询技巧,并提出了优化查询性能的建议,如创建索引、避免N+1查询、使用分页及预加载关联数据。理解并运用这些技巧能提升Flask应用的开发效率和性能。
|
11天前
|
数据库 开发者 Python
Python中使用Flask构建简单Web应用的例子
【4月更文挑战第15天】Flask是一个轻量级的Python Web框架,它允许开发者快速搭建Web应用,同时保持代码的简洁和清晰。下面,我们将通过一个简单的例子来展示如何在Python中使用Flask创建一个基本的Web应用。
|
11天前
|
前端开发 数据挖掘 API
使用Python中的Flask框架进行Web应用开发
【4月更文挑战第15天】在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架。它简洁、灵活且易于扩展,使得开发者能够快速地构建出高质量的Web应用。本文将深入探讨Flask框架的核心特性、使用方法以及在实际开发中的应用。
|
22天前
|
资源调度 JavaScript 安全
Linux系统之部署web-check网站分析工具
【4月更文挑战第3天】Linux系统之部署web-check网站分析工具
67 9
|
24天前
|
数据采集 Java API
python并发编程: Python使用线程池在Web服务中实现加速
python并发编程: Python使用线程池在Web服务中实现加速
18 3
python并发编程: Python使用线程池在Web服务中实现加速
|
1月前
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
7 0