很多时候,我们需要复现人家的工程。因此,需要了解人家的网络结构。但不同框架之间可视化网络层方法不一样,这样给研究人员造成了很大的困扰。模型可视化工具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接口的方式直接渲染模型。
具体如何使用,详情请参考项目:点击进入