【ニューラルネットワーク描画ツール】PlotNeuralNetの詳細説明

1. PlotNeuralNet の概要

1. はじめに

PlotNeuralNetライブラリはニューラル ネットワークを描画するためのツール ライブラリです. それによって描画されるニューラル ネットワークは比較的きれいで整然としていて,科学研究論文を書くのにより適しています. ここで著者はライブラリの使用法を整理し, 期待しています.より多くの友人がそれを使用できるようにする このライブラリは、より美しいニューラル ネットワークを描画します。

以下は、ライブラリのコードによって描画されたニューラル ネットワークの図の一部です。

FCN−8 FCN-8FCN8

FCN−32 FCN-32FCN32

総合的 - ネストされたエッジ検出 総合的にネストされたエッジ検出ホリスティック_ _ _ _ _ _ _ _ネストエッジ検出_ _ _ _ _ _ _ _ _

2. PlotNeuralNetの構成と原理

2.1 コード構成

このリポジトリのコードは、次の 3 つの言語を使用して描画されます。

  • python独自のニューラル ネットワークを設計するための、メインの編成スクリプト ファイルとして
  • shellPython と Latex の実行をミドルウェアとして整理するために使用されます。(Linux システムではより一般的で一般的です)
  • LaTexニューラル ネットワークを描画するために使用され、Python を通じて呼び出します。

2.2 動作原理

このプロジェクトでは、Python を使用して描画用の Latex コードを呼び出します。動作原理を理解するための短い例を次に示します。

# Conv
def to_Conv( name, s_filer=256, n_filer=64, offset="(0,0,0)", to="(0,0,0)", width=1, height=40, depth=40, caption=" " ):
    return r"""
\pic[shift={"""+ offset +"""}] at """+ to +""" 
    {Box={
        name=""" + name +""",
        caption="""+ caption +r""",
        xlabel={
    
    {"""+ str(n_filer) +""", }},
        zlabel="""+ str(s_filer) +""",
        fill=\ConvColor,
        height="""+ str(height) +""",
        width="""+ str(width) +""",
        depth="""+ str(depth) +"""
        }
    };
"""

パイコア 。ティクセン 。py pycore.tikzeng.pyパイコア_ ティックゼング_ _ _ _ ぴー_

実際、ここから、関数パラメータを設定して latex 文字列を返すことは、描画のために latex を呼び出すのと同等であることがわかります。(最後に組織描画用のコードがあります)

2.3 Linux はフレンドリーですが、Windows にはいくつかの問題があります

ただし、元のウェアハウスの設計は Linux ユーザー向けのソリューションであり、Ubuntu システムではスムーズに実行できますが、Windows システムで実行すると特定の問題が発生する可能性があることに注意してください

したがって、作者自身がウェアハウスをフォークし、Windows システム上で実行できるようにいくつかの変更を加えました。

3. フォークされた Github リポジトリ

ソース ウェアハウスは Linux システム用のニューラル ネットワーク視覚化ツールであり、Windows で実行すると特定のエラー メッセージが表示される場合があります。

以下は、作成者が変更した後のコード ウェアハウスのアドレスです: (元のウェアハウスからフォーク)

SamuraiBUPT: PlotNeuralNet-Windows

もちろん、元のウェアハウスに直接アクセスして閲覧することもできます。

HarisIqbal88: PlotNeuralNet

2. クイック スタート - Windows

Windows ユーザー向けの起動スキームは次のとおりです。

1. 事前設定

  • コンピュータに LaTex がインストールされていることを確認してください。公式ウェアハウスではMikTeXのインストールを推奨していますが、私は texlive をインストールしただけで正常に実行できます~
  • Windows OS にシェル スクリプトを実行する環境があることを確認してください。Git bashまたはCygwinを推奨します

2. リポジトリのクローンを作成します

を使用して、リポジトリのクローン操作git clone https://github.com/SamuraiBUPT/PlotNeuralNet-Windows.gitを。

3. 以下の例に従って、~ の実行方法を理解してください。

  • クローン作成したプロジェクトフォルダーをIDEで開きます。
  • bash 環境を有効にします (すでに Git Bash があり、環境変数を構成している場合は、ターミナルに直接入力するか、bashシェルshスクリプトの実行環境に入力できます。ターミナルの前のインジケーターが から変化するのがわかります。 Windows システムの白黒を他の色に変換します。
  • pyexamplesパスを入力します( cd pyexamples/)
  • コマンドを入力して、bash ../tikzmake.sh test_simple最初のニューラル ネットワーク プロットの結果を確認します。

4.bash ../tikzmake.sh test_simple

ご覧のとおり、pyexamples パスの下に独自の Python スクリプトを作成した後は、tikzmake.shこのパスの下の上部のパスにあるスクリプトを呼び出すだけで実行できます。

  • bashディレクティブはシェルスクリプトのコンパイラを指定するものです
  • ../tikzmake.sh指定:上位ディレクトリにあるtikzmake.shスクリプトを実行
  • test_simpleこれは現在のパスにある Python ファイルのファイル名です。追加する必要のないサフィックスに注意してください。.pyここで、このファイル名はシェル スクリプトのパラメータとして渡され、シェル スクリプトの実行のターゲットがどのファイルであるかを決定します。

3. 使用方法

プロジェクト コードの開始方法を理解したら、独自のニューラル ネットワークの描画を開始できます。

通常の初期化

ニューラル ネットワークを構成するための通常の Python コードには、次のスケルトンが必要です

import sys

sys.path.append('../')
from pycore.tikzeng import *

# defined your arch
arch = [
    to_head('..'),
    to_cor(),
    to_begin(),

    # your architecture here...
    # ...
    # ...
    # ...

    to_end()
]


def main():
    namefile = str(sys.argv[0]).split('.')[0]
    to_generate(arch, namefile + '.tex')


if __name__ == '__main__':
    main()

ご覧のとおり、実際に変更する必要があるのは、functionarchの間のリストの内容だけであり、ここで独自のニューラル ネットワーク設計を行います。to_begin()to_end()

4. 機能説明

機能の説明については、このブログを参照してください。非常に詳しく説明されています。

著者は今後、関連する機能の API ドキュメントも更新する予定です~

おすすめ

転載: blog.csdn.net/Samurai_Bushido/article/details/129924714