Figwise

ニューラルネットワーク図ジェネレーター(Neural Network Diagram Generator)

各層のニューロン数を入力すると図がその場で更新されます。ニューロン単位のビューとラベル付きブロック図を切り替えて、SVGまたはPNGで書き出せます。

表示モード
配色の基準
サンプルを読み込む:
Input Input (4) Hidden 1 Hidden 1 (8) Hidden 2 Hidden 2 (8) Output Output (3)
01使用例

同じ入力から4通りの構成図スタイルへ

このニューラルネットワーク図ジェネレーターは、同じ形式の層リストから全結合のMLP、収縮して広がるオートエンコーダー、折りたたみ表示した大きな層、CNNのブロック図まで描き分けます。論文の記述スタイルに合わせてレイアウトを選べます。

シンプルな多層パーセプトロン(MLP)

入力層・隠れ層2つ・出力層の4層構成。論文の手法セクションで見慣れた形式で全結合とラベルを描画します。

ボトルネックを持つオートエンコーダー

砂時計型のレイアウトで2ユニットのボトルネック層まで収縮し、再び広がっていく——エンコーダー・デコーダー構成でよく使われる描き方です。

大きな層を折りたたみ表示

64ユニットの入力層は先頭と末尾のニューロンだけを描き、間を省略記号でつなぐことで、実際の層のサイズを隠さずに図を読みやすく保ちます。

CNNのアーキテクチャブロック図

畳み込み・プーリング・全結合の各段階をラベル付きの矩形にし、矢印でつなぐ——多くのCNNやTransformerの論文で実際に使われているレイアウトです。

02特徴

論文でのレイヤー表記の慣習に合わせたニューラルネットワーク図ジェネレーター

ニューロン単位表示とブロック単位表示を切り替えるニューラルネットワーク図
DUAL LAYOUT MODE

ニューロン単位のビューとアーキテクチャブロック図を切り替え

4層のMLPは丸と線で描くのが最も分かりやすく、ResNetの1ステージやTransformerエンコーダーはラベル付きの矩形の方が読みやすくなります。層リストを入力し直さずにモードを切り替えられ、同じデータから両方の描画を生成します。

層のサイズを編集するたびに更新されるニューラルネットワーク図のライブプレビュー
ライブプレビュー

層リストを編集するとその場でプレビュー

カンマ区切りの層リスト、または1行ごとに名前付きの層を入力すると、図がすぐに再描画されます。書き出す前にノード数・層の順番・ラベルを確認できるので、出力してから直すという手戻りがありません。

表示されているニューロン間が省略記号でつながれた、幅の広いニューラルネットワークの層
AUTO ELLIPSIS

幅の広い層は自動で折りたたまれ、塗りつぶしにならない

表示するニューロン数の上限を設定すると、それを超える層は先頭と末尾のニューロンだけを描き、間を省略記号でつなぎます。128や256ユニットといった大きな層を、すべての接続線を描かず、丸が潰れて帯状になることもなく表現する、論文の図でよく使われる方法です。

層ラベルと次元表記付きでベクターSVGとして書き出されたニューラルネットワーク図
SVG + PNG

手法セクションに合わせた層ラベルと次元表記

各層には任意の名前を付けられるほか、位置から自動判定される種類——Input、Hidden 1、Hidden 2、Output——とニューロン数やチャンネル数を表示できます。完成した図は、論文の組版に適したベクターSVG、またはスライド用のPNGとして書き出せます。

03概要

ニューラルネットワーク図とは?

ニューラルネットワーク図とは、モデルの層とその接続関係を示す図です。ニューロン単位のビューでは個々のニューロンを丸で、重み付き接続を線で表し、ブロック図では畳み込みやアテンションのようなより大きな構造単位をラベル付きの矩形で表します。

論文では通常、入力層を明示し、隠れ層には順番に番号を振り、出力層を別途示します。査読者は本文で説明されたアーキテクチャとこれらのラベルを照合するためです。矢印を使う図と単純な線でつなぐ図のどちらも、実際の論文でよく見られます。

ユニット数の少ない小さなMLPであれば、すべてのニューロンを描くことで図だけで構造が伝わります。1層あたり数十ユニットを超えると、次元数を明記したブロック図に切り替えたほうが、線が絡み合って読めなくなるのを避けつつ同じ構造を伝えられます。

ニューロン単位のビューとブロック図によるニューラルネットワーク図の比較
04仕組み

層リストから書き出しまでの流れ

層のサイズを入力してから、論文や卒業論文、スライド用の図として書き出すまでの4ステップです。

  1. 01

    層を入力する

    4,8,8,3のように1行のカンマ区切りで入力するか、Input,4 / Hidden 1,8のように1行ごとに名前付きの層を入力します。位置から自動判定されるラベルではなく独自のラベルを使いたい場合は後者を選びます。どちらの形式もMLP、エンコーダー・デコーダー構成、CNNの各層のチャンネル数の記録に使えます。

  2. 02

    表示モードを選ぶ

    小さなMLPにはニューロン単位のビューを、すべてのユニットを描くと読みにくくなるCNN・ResNet・Transformerにはブロック図を選びます。ブロック図はこうしたアーキテクチャで実際によく使われる表現方法です。

  3. 03

    ラベルと折りたたみ設定を調整する

    層の種類のラベルと次元表記のオン・オフを切り替え、配色方式を選び、幅の広い層が省略記号に折りたたまれるまでの表示ニューロン数の上限を設定します。スライドでも印刷サイズでも読みやすい図に仕上がります。

  4. 04

    SVGまたはPNGで書き出す

    LaTeXや論文テンプレートに配置するならベクターのSVGを、スライドやプレプリント用の草稿にはPNGをダウンロードします。

05FAQ

研究者・学生からよくあるニューラルネットワーク図の質問

どこまで細かく描くべきか、層のラベル付け方、投稿にはどの形式が適しているか。

06関連ツール

手法セクションを書く前に構成図を仕上げる

上の入力欄に各層のニューロン数を入れ、個々のニューロンに分解できないモデルならブロック図に切り替え、このニューラルネットワーク図ジェネレーターで仕上げた図をSVGまたはPNGで書き出して、そのまま次の原稿に使えます。

ニューラルネットワーク図を作成する