>加入極市CV技術(shù)交流群,走在計算機視覺..." />
<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 8486字,需瀏覽 17分鐘

           ·

          2020-09-25 03:01

          ↑ 點擊藍字?關(guān)注極市平臺

          作者丨鑫鑫淼淼焱焱
          來源丨程序員技術(shù)精選
          編輯丨極市平臺

          極市導(dǎo)讀

          ?

          本文匯總了23個令人眼前一亮的神經(jīng)網(wǎng)絡(luò)的設(shè)計和可視化工具,并對其進行了簡要介紹。>>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿


          前言

          深度學(xué)習(xí)領(lǐng)域,最常見的就是各種網(wǎng)絡(luò)模型,那么在寫論文或者文章,介紹網(wǎng)絡(luò)模型的時候,最好的辦法當然就是展示代碼畫圖,今天介紹的 Github 項目,就是整理了 23?個設(shè)計和可視化網(wǎng)絡(luò)結(jié)構(gòu)的工具,其地址如下:
          https://github.com/ashishpatel26/Tools-to-Design-or-Visualize-Architecture-of-Neural-Network
          23?款工具名稱分別如下,其中原文封面圖就是第 16 款工具實現(xiàn)的結(jié)果,非常的炫酷和讓人眼前一亮:
          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
          23. Net2Vis

          工具

          1. draw_convnet

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

          2. NNSVG

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

          3. PlotNeuralNet

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

          安裝

          這里給出在 Ubuntu 和 windows 兩個系統(tǒng)的安裝方式:
          ubuntu 16.04
          sudo apt-get install texlive-latex-extra

          Ubuntu 18.04.2?是基于這個網(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 運行器,推薦這兩個:
          • Git:https://git-scm.com/download/win
          • Cygwin:https://www.cygwin.com/

          使用例子

          安裝完后就是使用,按照如下所示即可:
          cd pyexamples/bash ../tikzmake.sh test_simple
          Python 的用法如下
          1. 先創(chuàng)建新的文件夾,并生成一個新的 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()

          最后,運行腳本
          bash ../tikzmake.sh my_arch

          4. TensorBoard

          https://www.tensorflow.org/tensorboard/graphs
          使用過 TensorFlow 的都應(yīng)該知道這個繪圖工具,TensorFlow 的可視化工具,查看網(wǎng)絡(luò)結(jié)構(gòu)、損失的變化、準確率等指標的變化情況等。
          網(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 的一個第三方庫,用于對序列模型的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)進行檢查,直接打印出來結(jié)果,比如,VGG 16 的網(wǎng)絡(luò)結(jié)構(gòu)如下所示,每層網(wǎng)絡(luò)的參數(shù)維度,參數(shù)的數(shù)量以及占整個網(wǎng)絡(luò)參數(shù)的比例都會展示出來:

          安裝

          通過 PyPI:
          pip install keras_sequential_ascii
          直接通過 github 倉庫:
          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+

          簡介

          Netron 可以可視化神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)和機器學(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 也有實驗支持這些框架:
          • 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
          • http://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. 運行命令?brew cask install netron
          Linux
          也是兩種方式,任選其中一種:
          1. 下載?.AppImage?文件,下載地址:https://github.com/lutzroeder/netron/releases/latest
          2. 運行命令?snap install netron
          Windows
          也是兩種方式,任選其中一種:
          1. 下載?.exe?文件,下載地址:https://github.com/lutzroeder/netron/releases/latest
          2. 運行命令?winget install netron
          瀏覽器:瀏覽器運行地址:https://www.lutzroeder.com/ai/netron
          Python 服務(wù)器
          首先,運行安裝命令?pip install netron,然后使用方法有兩種:
          • 命令行,運行?netron [文件路徑]
          • .py?代碼中加入
          import netron;

          netron.start('文件路徑')

          10. DotNet

          https://github.com/martisak/dotnets
          這個工具是一個簡單的 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?是一個開源的圖可視化軟件,它可以用抽象的圖形和網(wǎng)絡(luò)圖來表示結(jié)構(gòu)化信息。
          其效果如下所示:

          12. Keras Visualization

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

          13. Conx

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

          14. ENNUI

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

          15. NNet

          教程:https://beckmw.wordpress.com/2013/03/04/visualizing-neural-networks-from-the-nnet-package/
          R 工具包,簡單的使用例子如下:
          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ù)等。
          下面展示了兩個網(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īng)網(wǎng)絡(luò)的結(jié)構(gòu)必須包含哪些內(nèi)容
          這種靈活性允許通過神經(jīng)進化(neuro-evolution)的方式為數(shù)據(jù)集調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)的形狀,并通過多線程來實現(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)建的一個神經(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)圖),當前支持使用 Caffe 的 prototxt 形式。
          效果如下圖所示:

          20. Monial

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

          21. Texample

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

          22. Quiver

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

          安裝方式

          兩種方式,直接用?pip
          pip install quiver_engine
          或者通過 GitHub 倉庫的方式:
          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è)置的文件夾中就可以看到每個網(wǎng)絡(luò)層的可視化結(jié)果。
          如果是想在瀏覽器中查看,代碼如下:
          from quiver_engine import server
          server.launch(model)
          默認的地址是?localhost:5000
          23.Net2Vis
          論文地址:https://arxiv.org/abs/1902.04394
          Github:https://github.com/viscom-ulm/Net2Vis
          這款工具的效果例子圖:
          安裝方法
          首先假設(shè)已經(jīng)安裝了 python3 和 npm,然后:
          1. 克隆這個 github 項目:

          git clone https://github.com/viscom-ulm/Net2Vis
          2. 為了后端工作,這里需要安裝?Docker?和?Cairo,主要的作用是轉(zhuǎn)換為 PDF,以及在瀏覽器里可以運行模型。
          如果是采用 docker,那么也要運行 daemon,這樣才能在單獨的容器里運行粘貼的代碼。
          對于后端的配置,步驟如下:
          # 1.進入后端的文件夾內(nèi)cd backend# 2. 安裝依賴包pip3 install -r requirements.txt# 3. 安裝 docker容器docker build --force-rm -t tf_plus_keras .# 4. 根據(jù)你的系統(tǒng)安裝對應(yīng)的 python 的 cairo 包,比如Debian 的 python-cairosvg # 5. 開啟服務(wù)python server.py
          而前端是一個 react 的應(yīng)用,使用方式如下:
          # 1. 進入文件夾cd net2vis# 2. 安裝 JavaScript 的依賴包npm install# 3. 開啟應(yīng)用npm start
          參考文章:
          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é)

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


          推薦閱讀


          來測一測你是幾級的煉丹師?


          添加極市小助手微信(ID : cvmart2),備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳),即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術(shù)交流群:月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

          △長按添加極市小助手

          △長按關(guān)注極市平臺,獲取最新CV干貨

          覺得有用麻煩給個在看啦~??
          瀏覽 136
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  婷婷九月成人在线 | 另类专区亚洲 | 日屄福利 | 国产精品福利视频在线 | 欧美日韩天堂 |