Kerasの学習履歴(History)をDataFrameに変換する

Kerasのちょっとした小ネタです。
Kerasで作ったモデルをfitすると、戻り値として損失関数や正解率を格納したHistoryオブジェクトが返されます。
それを使って、学習の進みなどを可視化できます。

例えばこちらの記事を参照: CNNで手書き数字文字の分類
こちらでは可視化だけで10行くらいのコードになっています。

で、改めてHistoryの中身をみてみると、DataFrameに変換できる形式であることに気づきました。
長いので、実データは {数値のリスト} に置換しましたが、次のようなイメージです。


print(history.history)
'''
{'val_loss': {数値のリスト},
 'val_acc': {数値のリスト},
 'loss': {数値のリスト},
 'acc': {数値のリスト}
'''

これは容易にDataFrameに変換できます。


print(pd.DataFrame(history.history))
'''
    val_loss  val_acc      loss       acc
0   0.106729   0.9677  0.590888  0.811850
1   0.072338   0.9764  0.227665  0.931233
2   0.059273   0.9800  0.174741  0.948033
3   0.047335   0.9837  0.149136  0.955500
4   0.042737   0.9859  0.132351  0.960167
5   0.039058   0.9868  0.121810  0.964600
6   0.034511   0.9881  0.110556  0.967050
7   0.032818   0.9882  0.105487  0.967867
8   0.032139   0.9893  0.100333  0.970167
9   0.030482   0.9898  0.095932  0.971383
10  0.027904   0.9900  0.089120  0.973267
11  0.028368   0.9898  0.086760  0.973683
'''

DataFrameになると、これ自体を分析しやすいですし、さらに非常に容易に可視化できます。


history_df = pd.DataFrame(history.history)
history_df.plot()
plt.show()

たったこれだけです。以前の記事の可視化に比べると非常に楽ですね。
出力はこのようになります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です