1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 7421字,需瀏覽 15分鐘

         ·

        2020-09-21 15:02



        前言

        深度學(xué)習(xí)領(lǐng)域,最常見的就是各種網(wǎng)絡(luò)模型,那么在寫論文或者文章,介紹網(wǎng)絡(luò)模型的時(shí)候,最好的辦法當(dāng)然就是展示代碼畫圖,今天介紹的 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_convnet

        star 數(shù)量:1.7k+

        這個(gè)工具最后一次更新是 2018 年的時(shí)候,一個(gè) python 腳本來繪制卷積神經(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/PlotNeuralNet

        star 數(shù)量:8.2k+

        這個(gè)工具是基于 Latex 代碼實(shí)現(xiàn)的用于繪制網(wǎng)絡(luò)結(jié)構(gòu),可以看看使用例子看看這些網(wǎng)絡(luò)結(jié)構(gòu)圖是如何繪制出來的。

        效果如下所示:

        FCN-8
        FCN-32
        安裝

        這里給出在 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-base
        sudo apt-get install texlive-fonts-recommended
        sudo apt-get install texlive-fonts-extra
        sudo 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_project
        vim my_arch.py
        1. 然后在新的代碼文件 my_arch.py 中添加這段代碼,用于定義你的網(wǎng)絡(luò)結(jié)構(gòu),主要是不同類型網(wǎng)絡(luò)層的參數(shù),包括輸入輸出數(shù)量、卷積核數(shù)量等
        import?sys
        sys.path.append('../')
        from?pycore.tikzeng?import?*

        #?defined?your?arch
        arch?=?[
        ????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

        使用過 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.py

        Caffe 的繪圖工具,效果如下所示:

        6. Matlab

        http://www.mathworks.com/help/nnet/ref/view.html

        Matlab 的繪圖工具,效果如下所示:

        7. Keras.js

        https://transcranial.github.io/keras-js/#/inception-v3

        Keras 的可視化工具,效果如下所示:

        8. keras-sequential-ascii

        https://github.com/stared/keras-sequential-ascii/

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

        安裝

        通過 PyPI:

        pip install keras_sequential_ascii

        直接通過 github 倉(cāng)庫:

        pip install git+git://github.com/stared/keras-sequential-ascii.git
        使用例子

        在代碼中添加:

        from?keras_sequential_ascii?import?keras2ascii

        keras2ascii(model)

        9. Netron

        https://github.com/lutzroeder/Netron

        Star 數(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.jsmodel.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/netron

        Python 服務(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è)開源的圖可視化軟件,它可以用抽象的圖形和網(wǎng)絡(luò)圖來表示結(jié)構(gòu)化信息。

        其效果如下所示:

        12. Keras Visualization

        https://keras.io/api/utils/model_plotting_utils/

        這是 Keras 庫中的一個(gè)功能模塊-- keras.utils.vis_utils 提供的繪制 Keras 網(wǎng)絡(luò)模型(使用的是 graphviz

        其效果如下所示:

        13. Conx

        https://conx.readthedocs.io/en/latest/index.html

        Python 的一個(gè)第三方庫 conx 可以通過函數(shù)net.picture() 來實(shí)現(xiàn)對(duì)帶有激活函數(shù)網(wǎng)絡(luò)的可視化,可以輸出圖片格式包括 SVG, PNG 或者是 PIL。

        其效果如下所示:


        14. ENNUI

        https://math.mit.edu/ennui/

        通過拖和拽相應(yīng)的圖形框來實(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-like

        GraphCore 主要是展示神經(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)元和突觸可以通過一行代碼進(jìn)行刪除;
        • 沒有規(guī)定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)必須包含哪些內(nèi)容

        這種靈活性允許通過神經(jīng)進(jìn)化(neuro-evolution)的方式為數(shù)據(jù)集調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)的形狀,并通過多線程來實(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 是通過 TensorFlow.js,Three.js 和 Tween.js 構(gòu)建的一個(gè)神經(jīng)網(wǎng)絡(luò)三維可視化框架。它提供了 APIs 來構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò)層,加載預(yù)訓(xùn)練模型以及在瀏覽器中就可以生成三維的可視化結(jié)構(gòu)。通過應(yīng)用它的 API 接口,可以更直觀地可視化和理解通過 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)(或者是任意有向無環(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è)工具也可以通過 LaTex 來實(shí)現(xiàn)一個(gè)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的可視化,比如,一個(gè) LaTex 的例子:

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

        22. Quiver

        github: https://github.com/keplr-io/quiver

        Star 數(shù)量:1.5k

        Keras 的一款交互式可視化卷積特征的一個(gè)工具

        展示例子如下所示:

        安裝方式

        兩種方式,直接用 pip

        pip install quiver_engine

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

        pip install git+git://github.com/keplr-io/quiver.git
        使用例子

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

        model?=?Model(...)

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

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

        最后在剛剛設(shè)置的文件夾中就可以看到每個(gè)網(wǎng)絡(luò)層的可視化結(jié)果。

        如果是想在瀏覽器中查看,代碼如下:

        from?quiver_engine?import?server
        server.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)第三方庫。

        可以根據(jù)需求和使用的框架來進(jìn)行選擇,相信應(yīng)該能夠滿足大部分人對(duì)可視化網(wǎng)絡(luò)結(jié)構(gòu)的需求。


        瀏覽 91
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            北条麻纪无码中文字幕 | 黄色日逼视频网站 | 性色88 | 久国产 | 婷婷大胆人体视频 | 少妇乱淫aaa高清视频真爽 | 青娱乐伊人 | 俺来也www久久婷婷 | 操逼挺好看看 | 亚洲午夜激情视频 |