Pythonと深層学習ライブラリ「Keras」で作成した学習モデルを可視化する方法についてまとめました。
【モデルの描画】model.summary()、plot_model
Pythonと深層学習ライブラリ「Keras」で作成した学習モデルの構造を可視化します。
動画解説
本ページの内容は以下動画でも解説しています。
model.summary()
model.summary()は、モデル構造を標準出力します。
plot_model
plot_modelは、モデルの構造を画像で出力できるものです。
plot_modelの引数の設定は以下のとおり。
引数 | 機能 |
---|---|
show_shapes | グラフ中に出力のshapeを出力するかどうか(デフォルト:False) |
show_layer_names | グラフ中にレイヤー名を出力するかどうか (デフォルトはTrue)を制御します. |
expand_nested | グラフ中にネストしたモデルをクラスタに展開するかどうか (デフォルトはFalse) |
dpi | 画像のdpi(デフォルトは96) |
使用するにはgraphvizのソフトウェアとモジュールを別途インストールする必要が必要です。
Mac環境の場合
ターミナルで以下のコマンドを実行すれば一式インストールできます。
pip install pydot pip install graphviz brew install graphviz
Windows環境の場合
●コマンドプロンプで以下のコマンドを実行してモジュールをインストールします。
pip install pydot pip install graphviz
● 公式ページ(https://graphviz.org/download/)からインストーラ(64bit環境なら「stable_windows_10_cmake_Release_x64_graphviz-install-2.49.0-win64.exe」)をダウンロードし実行してインストールします。
● インストールしたgraphvizのbinフォルダのパスを環境変数のPathに追加します。
C:\Program Files\Graphviz\bin
※上記パスはご自身のPCにインストールした状態に応じて適宜変更してください
【Python/keras】'`pydot` failed to call GraphViz.'エラーなどが出た場合
Pythonと深層学習ライブラリ「Keras」で'pydot failed to call GraphViz.'エラーなどが出た場合の解決方法についてまとめました。
サンプルコード
#### 実行結果
【Python/Keras】モデル構造の可視化
Pythonの機械学習モジュール「Keras」でモデルを可視化する方法をソースコード付きでまとめました。
【その他】Modelクラスのプロパティ・メソッド
Modelクラスのプロパティ・メソッドをいかにまとめました。
プロパティ | 概要 |
---|---|
model.name | modelの名前 |
model.inputs | 入力のTensorクラスのリスト |
model.outputs | 出力のTensorクラスのリスト |
model.layers | Layerクラスのリスト |
model.trainable | modelがtrainableか(boolean) |
model.input_shape | 入力のshape |
model.output_shape | 出力のshape |
model.weights | Variableクラスのリスト |
model.trainable_weights | 学習可能なVariableクラスのリスト |
model.non_trainable_weights | 学習不可能なVariableクラスのリスト |
メソッド | 概要 |
---|---|
model.summary(line_length=None, positions=None, print_fn=None) | model構造をプリント表示 |
model.get_layer(name=None, index=None) | 指定したLayerクラスを取得 |
model.get_weights() | 全layerの重みのリストを取得 |
model.set_weights(weight) | get_weights()で取得した各layerの重みを設定 |
model.get_config() | モデルのコンフィグを辞書形式で取得 |
model.from_config(config, custom_objects=None) | get_config()で取得したコンフィグからモデルを生成 |
model.to_json() | モデルの構造をjson形式の文字列で取得 |
model.to_yaml() | モデルの構造をYAML形式の文字列で取得 |
model.save(filepath, overwrite=True, include_optimizer=True) | モデルの構造と重みと学習に関する設定や状態を全てHDF5形式でセーブ |
model.save_weights(filepath, overwrite=True) | モデルの重みをHDF5形式でセーブ |
model.load_weights(filepath, by_name=False) | save_weights()で保存した重みをモデルにロード |
keras.models.load_model(filepath,custom_objects=None,compile=True) | save()で保存されたモデルの状態をロード |
keras.models.model_from_json(json_str) | to_json()で取得したモデルの構造をロード |
keras.models.model_from_yaml(yaml_str) | to_yaml()で取得したモデルの構造をロード |
【TensorFlow版Keras入門】ディープラーニングを簡単に学ぶ方法
Pythonモジュール「TensorFlow/Keras」で深層学習(ディープラーニング)を行う方法について入門者向けに使い方を解説します。
コメント