1. PlotNeuralNet の概要
1. はじめに
PlotNeuralNetライブラリはニューラル ネットワークを描画するためのツール ライブラリです. それによって描画されるニューラル ネットワークは比較的きれいで整然としていて,科学研究論文を書くのにより適しています. ここで著者はライブラリの使用法を整理し, 期待しています.より多くの友人がそれを使用できるようにする このライブラリは、より美しいニューラル ネットワークを描画します。
以下は、ライブラリのコードによって描画されたニューラル ネットワークの図の一部です。
FCN−8 FCN-8FCN−8
FCN−32 FCN-32FCN−32
総合的 - ネストされたエッジ検出 総合的にネストされたエッジ検出ホリスティック_ _ _ _ _ _ _ _−ネストされたエッジ検出_ _ _ _ _ _ _ _ _
2. PlotNeuralNetの構成と原理
2.1 コード構成
このリポジトリのコードは、次の 3 つの言語を使用して描画されます。
python
独自のニューラル ネットワークを設計するための、メインの編成スクリプト ファイルとしてshell
Python と 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
もちろん、元のウェアハウスに直接アクセスして閲覧することもできます。
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 ドキュメントも更新する予定です~