最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

22 款神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)和可視化的工具大匯總

2022-11-08 11:53 作者:極市平臺(tái)  | 我要投稿

來(lái)源丨算法猿的成長(zhǎng)

編輯丨極市平臺(tái)

前言

深度學(xué)習(xí)領(lǐng)域,最常見(jiàn)的就是各種網(wǎng)絡(luò)模型,那么在寫論文或者文章,介紹網(wǎng)絡(luò)模型的時(shí)候,最好的辦法當(dāng)然就是展示代碼畫(huà)圖,今天介紹的 Github 項(xiàng)目,就是整理了 22 個(gè)設(shè)計(jì)和可視化網(wǎng)絡(luò)結(jié)構(gòu)的工具,其地址如下:
https://github.com/ashishpatel26/Tools-to-Design-or-Visualize-Architecture-of-Neural-Network

22 款工具名稱分別是:

  1. draw_convnet

  2. NNSVG

  3. PlotNeuralNet

  4. TensorBoard

  5. Caffe

  6. Matlab

  7. Keras.js

  8. Keras-sequential-ascii

  9. Netron

  10. DotNet

  11. Graphviz

  12. Keras Visualization

  13. Conx

  14. ENNUI

  15. NNet

  16. GraphCore

  17. Neataptic

  18. TensorSpace

  19. Netscope CNN Analyzer

  20. Monial

  21. Texample

  22. Quiver

本文首發(fā)于我的知乎專欄:https://zhuanlan.zhihu.com/p/147462170

1. draw_convnet

Github: https://github.com/gwding/draw_convnetstar 數(shù)量:1.7k+這個(gè)工具最后一次更新是 2018 年的時(shí)候,一個(gè) python 腳本來(lái)繪制卷積神經(jīng)網(wǎng)絡(luò)的工具,效果如下所示:

2. NNSVG

網(wǎng)址:http://alexlenail.me/NN-SVG/LeNet.html這個(gè)工具有 3 種網(wǎng)絡(luò)結(jié)構(gòu)風(fēng)格,分別如下所示:LeNet 類型:

AlexNet 類型

FCNN 類型

3. PlotNeuralNet

GitHub 地址:https://github.com/HarisIqbal88/PlotNeuralNetstar 數(shù)量:8.2k+這個(gè)工具是基于 Latex 代碼實(shí)現(xiàn)的用于繪制網(wǎng)絡(luò)結(jié)構(gòu),可以看看使用例子看看這些網(wǎng)絡(luò)結(jié)構(gòu)圖是如何繪制出來(lái)的。效果如下所示:


安裝

這里給出在 Ubuntu 和 windows 兩個(gè)系統(tǒng)的安裝方式:ubuntu 16.04

sudo?apt-get?install?texlive-latex-extra

Ubuntu 18.04.2?是基于這個(gè)網(wǎng)站:https://gist.github.com/rain1024/98dd5e2c6c8c28f9ea9d,安裝命令如下:

sudo?apt-get?install?texlive-latex-basesudo?apt-get?install?texlive-fonts-recommendedsudo?apt-get?install?texlive-fonts-extrasudo?apt-get?install?texlive-latex-extra

Windows

  1. 首先下載并安裝 MikTex,下載網(wǎng)站:https://miktex.org/download

  2. 其次,下載并安裝 windows 的 bash 運(yùn)行器,推薦這兩個(gè):

    • Git:https://git-scm.com/download/win

    • Cygwin:https://www.cygwin.com/

使用例子

安裝完后就是使用,按照如下所示即可:

cd?pyexamples/bash?../tikzmake.sh?test_simple

Python 的用法如下

  1. 先創(chuàng)建新的文件夾,并生成一個(gè)新的 python 代碼文件:

$?mkdir?my_project$?cd?my_projectvim?my_arch.py

  1. 然后在新的代碼文件 `my_arch.py` 中添加這段代碼,用于定義你的網(wǎng)絡(luò)結(jié)構(gòu),主要是不同類型網(wǎng)絡(luò)層的參數(shù),包括輸入輸出數(shù)量、卷積核數(shù)量等

import?syssys.path.append('../')from?pycore.tikzeng?import?*#?defined?your?archarch?=?[????to_head(?'..'?),????to_cor(),????to_begin(),????to_Conv("conv1",?512,?64,?offset="(0,0,0)",?to="(0,0,0)",?height=64,?depth=64,?width=2?),????to_Pool("pool1",?offset="(0,0,0)",?to="(conv1-east)"),????to_Conv("conv2",?128,?64,?offset="(1,0,0)",?to="(pool1-east)",?height=32,?depth=32,?width=2?),????to_connection(?"pool1",?"conv2"),????to_Pool("pool2",?offset="(0,0,0)",?to="(conv2-east)",?height=28,?depth=28,?width=1),????to_SoftMax("soft1",?10?,"(3,0,0)",?"(pool1-east)",?caption="SOFT"??),????to_connection("pool2",?"soft1"),????to_end()????]def?main():????namefile?=?str(sys.argv[0]).split('.')[0]????to_generate(arch,?namefile?+?'.tex'?)if?__name__?==?'__main__':????main()

  1. 最后,運(yùn)行腳本

bash?../tikzmake.sh?my_arch

4. TensorBoard

https://www.tensorflow.org/tensorboard/graphs使用過(guò) TensorFlow 的都應(yīng)該知道這個(gè)繪圖工具,TensorFlow 的可視化工具,查看網(wǎng)絡(luò)結(jié)構(gòu)、損失的變化、準(zhǔn)確率等指標(biāo)的變化情況等。網(wǎng)絡(luò)結(jié)構(gòu)的效果如下圖所示:

5. Caffe

https://github.com/BVLC/caffe/blob/master/python/caffe/draw.pyCaffe 的繪圖工具,效果如下所示:

6. Matlab

http://www.mathworks.com/help/nnet/ref/view.htmlMatlab 的繪圖工具,效果如下所示:

7. Keras.js

https://transcranial.github.io/keras-js/#/inception-v3Keras 的可視化工具,效果如下所示:

8. keras-sequential-ascii

https://github.com/stared/keras-sequential-ascii/Keras 的一個(gè)第三方庫(kù),用于對(duì)序列模型的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)進(jìn)行檢查,直接打印出來(lái)結(jié)果,比如,VGG 16 的網(wǎng)絡(luò)結(jié)構(gòu)如下所示,每層網(wǎng)絡(luò)的參數(shù)維度,參數(shù)的數(shù)量以及占整個(gè)網(wǎng)絡(luò)參數(shù)的比例都會(huì)展示出來(lái):

安裝

通過(guò) PyPI:

pip?install?keras_sequential_ascii

直接通過(guò) github 倉(cāng)庫(kù):

pip?install?git+git://github.com/stared/keras-sequential-ascii.git

使用例子

在代碼中添加:

from?keras_sequential_ascii?import?keras2asciikeras2ascii(model)

9. Netron

https://github.com/lutzroeder/NetronStar 數(shù)量:9.7k+

簡(jiǎn)介

Netron 可以可視化神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)和機(jī)器學(xué)習(xí)模型,目前支持的網(wǎng)絡(luò)框架包括:

  • ONNX:?.onnx, .pb, .pbtxt?文件

  • Keras:.h5,.keras?文件

  • Core ML:.mlmodel

  • Caffe:.caffemodel, .prototxt

  • Caffe2:predict_net.pb, predict_net.pbtxt

  • Darknet:?.cfg

  • MXNet:.model, -symbol.json

  • ncnn:.param

  • TensorFlow Lite:.tflite

另外,Netron 也有實(shí)驗(yàn)支持這些框架:

  • TorchScript:?.pt, .pth

  • PyTorch.pt, .pth

  • Torch:?.t7

  • Arm NN.armnn

  • Barracuda.nn

  • BigDL?.bigdl,?.model

  • Chainer?:.npz,?.h5

  • CNTK?:.model,?.cntk

  • Deeplearning4j.zip

  • MediaPipe.pbtxt

  • ML.NET.zip

  • MNN.mnn

  • OpenVINO?:.xml

  • PaddlePaddle?:.zip,?__model__

  • scikit-learn?:.pkl

  • Tengine?:.tmfile

  • TensorFlow.js?:model.json,?.pb

  • TensorFlow?:.pb,?.meta,?.pbtxt,?.ckpt,?.index

其效果如下所示:

安裝

安裝方式,根據(jù)不同系統(tǒng),有所不一樣:macOS兩種方式,任選一種:

  1. 下載?.dmg?文件,地址:https://github.com/lutzroeder/netron/releases/latest

  2. 運(yùn)行命令?brew cask install netron

Linux也是兩種方式,任選其中一種:

  1. 下載?.AppImage?文件,下載地址:https://github.com/lutzroeder/netron/releases/latest

  2. 運(yùn)行命令?snap install netron

Windows也是兩種方式,任選其中一種:

  1. 下載?.exe?文件,下載地址:https://github.com/lutzroeder/netron/releases/latest

  2. 運(yùn)行命令?winget install netron

瀏覽器:瀏覽器運(yùn)行地址:https://www.lutzroeder.com/ai/netronPython 服務(wù)器:首先,運(yùn)行安裝命令?pip install netron,然后使用方法有兩種:

  • 命令行,運(yùn)行?netron [文件路徑]

  • .py?代碼中加入

import?netron;netron.start('文件路徑')

10. DotNet

https://github.com/martisak/dotnets這個(gè)工具是一個(gè)簡(jiǎn)單的 python 腳本,利用?Graphviz?生成神經(jīng)網(wǎng)絡(luò)的圖片。主要參考了文章:https://tgmstat.wordpress.com/2013/06/12/draw-neural-network-diagrams-graphviz/用法如下:在 MaxOS 上:

python?dotnets.py?|?dot?-Tpng?|?open?-f?-a?/Applications/Preview.app

或者生成 PDF 文件

python?dotnets.py?|?dot?-Tpdf?>?test.pdf

其效果如下所示:

11. Graphviz

http://www.graphviz.org/教程:https://tgmstat.wordpress.com/2013/06/12/draw-neural-network-diagrams-graphviz/Graphviz?是一個(gè)開(kāi)源的圖可視化軟件,它可以用抽象的圖形和網(wǎng)絡(luò)圖來(lái)表示結(jié)構(gòu)化信息。其效果如下所示:

12. Keras Visualization

https://keras.io/api/utils/model_plotting_utils/這是 Keras 庫(kù)中的一個(gè)功能模塊--?keras.utils.vis_utils?提供的繪制 Keras 網(wǎng)絡(luò)模型(使用的是?graphviz?)其效果如下所示:

13. Conx

https://conx.readthedocs.io/en/latest/index.htmlPython 的一個(gè)第三方庫(kù)?conx?可以通過(guò)函數(shù)net.picture()?來(lái)實(shí)現(xiàn)對(duì)帶有激活函數(shù)網(wǎng)絡(luò)的可視化,可以輸出圖片格式包括 SVG, PNG 或者是 PIL。其效果如下所示:

14. ENNUI

https://math.mit.edu/ennui/通過(guò)拖和拽相應(yīng)的圖形框來(lái)實(shí)現(xiàn)一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的可視化,下面是一個(gè)可視化 LeNet 的例子:

15. NNet

教程:https://beckmw.wordpress.com/2013/03/04/visualizing-neural-networks-from-the-nnet-package/R 工具包,簡(jiǎn)單的使用例子如下:

data(infert,?package="datasets")plot(neuralnet(case~parity+induced+spontaneous,?infert))

效果如下所示:

16. GraphCore

https://www.graphcore.ai/posts/what-does-machine-learning-look-likeGraphCore?主要是展示神經(jīng)網(wǎng)絡(luò)中操作的可視化結(jié)果,但也包括了網(wǎng)絡(luò)結(jié)構(gòu)的內(nèi)容,比如每層的網(wǎng)絡(luò)參數(shù)等。下面展示了兩個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的可視化效果--AlexNet 和 ResNet50.AlexNet

ResNet50

17. Neataptic

https://wagenaartje.github.io/neataptic/Neataptic?提供了非常靈活的神經(jīng)網(wǎng)絡(luò)可視化形式

  • 神經(jīng)元和突觸可以通過(guò)一行代碼進(jìn)行刪除;

  • 沒(méi)有規(guī)定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)必須包含哪些內(nèi)容

這種靈活性允許通過(guò)神經(jīng)進(jìn)化(neuro-evolution)的方式為數(shù)據(jù)集調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)的形狀,并通過(guò)多線程來(lái)實(shí)現(xiàn)。其效果如下圖所示:

18. TensorSpace

https://tensorspace.org/教程:https://www.freecodecamp.org/news/tensorspace-js-a-way-to-3d-visualize-neural-networks-in-browsers-2c0afd7648a8/TensorSpace?是通過(guò) TensorFlow.js,Three.js 和 Tween.js 構(gòu)建的一個(gè)神經(jīng)網(wǎng)絡(luò)三維可視化框架。它提供了 APIs 來(lái)構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò)層,加載預(yù)訓(xùn)練模型以及在瀏覽器中就可以生成三維的可視化結(jié)構(gòu)。通過(guò)應(yīng)用它的 API 接口,可以更直觀地可視化和理解通過(guò) TensorFlow、Keras 和 TensorFlow.js 等構(gòu)建的任何預(yù)訓(xùn)練模型。效果如下圖所示:

19. Netscope CNN Analyzer

http://dgschwend.github.io/netscope/quickstart.html一款基于 web 端的可視化和分析卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(或者是任意有向無(wú)環(huán)圖),當(dāng)前支持使用 Caffe 的 prototxt 形式。效果如下圖所示:

20. Monial

https://github.com/mlajtos/moniel計(jì)算圖的交互式表示法,展示例子如下所示,左邊是輸入,右側(cè)就是對(duì)應(yīng)結(jié)構(gòu)的可視化結(jié)果。

21. Texample

http://www.texample.net/tikz/examples/neural-network/這個(gè)工具也可以通過(guò) LaTex 來(lái)實(shí)現(xiàn)一個(gè)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的可視化,比如,一個(gè) LaTex 的例子:

其可視化結(jié)果如下所示:

22. Quiver

github: https://github.com/keplr-io/quiverStar 數(shù)量:1.5kKeras 的一款交互式可視化卷積特征的一個(gè)工具展示例子如下所示:

安裝方式

兩種方式,直接用?pip

pip?install?quiver_engine

或者通過(guò) GitHub 倉(cāng)庫(kù)的方式:

pip?install?git+git://github.com/keplr-io/quiver.git

使用例子

首先構(gòu)建你的 keras 模型:

model?=?Model(...)

接著通過(guò)一行代碼來(lái)發(fā)布可視化的展示板:

quiver_engine.server.launch(model,?classes=['cat','dog'],?input_folder='./imgs')

最后在剛剛設(shè)置的文件夾中就可以看到每個(gè)網(wǎng)絡(luò)層的可視化結(jié)果。如果是想在瀏覽器中查看,代碼如下:

from?quiver_engine?import?serverserver.launch(model)

默認(rèn)的地址是?localhost:5000

參考文章:

  1. https://datascience.stackexchange.com/questions/12851/how-do-you-visualize-neural-network-architectures

  2. https://datascience.stackexchange.com/questions/2670/visualizing-deep-neural-network-training

小結(jié)

這 22 款工具的輸出結(jié)果既有直接打印的,也有黑白圖、彩色圖、炫酷的球體可視化結(jié)果,以及三維可視化結(jié)果,基本都可以支持目前主流的深度學(xué)習(xí)框架,當(dāng)然也有的是基于特定框架,比如 keras,實(shí)現(xiàn)的對(duì)應(yīng)第三方庫(kù)??梢愿鶕?jù)需求和使用的框架來(lái)進(jìn)行選擇,相信應(yīng)該能夠滿足大部分人對(duì)可視化網(wǎng)絡(luò)結(jié)構(gòu)的需求。



22 款神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)和可視化的工具大匯總的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
山丹县| 江都市| 苏尼特右旗| 环江| 偃师市| 金堂县| 内江市| 龙川县| 达日县| 万山特区| 罗定市| 汝州市| 宁波市| 页游| 昭通市| 鱼台县| 东乡族自治县| 灵寿县| 宣汉县| 漳浦县| 长白| 全州县| 五大连池市| 山阴县| 合作市| 招远市| 克拉玛依市| 竹北市| 进贤县| 马关县| 五常市| 广灵县| 梓潼县| 自治县| 涪陵区| 肃南| 互助| 伊吾县| 武强县| 富顺县| 平阴县|