Python
Keras
TensorFlow

Kerasのimportをシンプルにする

増え続けるimport文

みなさんの中にはKerasに限らずPythonのファイルの頭がこんなことになってしまって整理するのも面倒になってしまった経験のある方はいないでしょうか。

from keras.layers.core import Reshape, RepeatVector, Permute, Dense, Activation
from keras.layers.merge import Multiply, Add, Concatenate
from keras.layers.recurrent import LSTM
from keras.models import Model, load_model
from keras.optimizers import Adam
from keras.callbacks import TensorBoard
from keras.layers.wrappers import TimeDistributed
from keras.layers.core import Lambda
from keras.engine.topology import Container
from keras import backend as K

きっとこれ以外にも import os, sysimport numpy as np という呪文が書いてあったりすると思います。

Kerasのimportをシンプルにする

実は layers 以下のモジュールは全て keras.layers から読み込めます。

from keras.models import Model, load_model
from keras.layers import Input, Activation, Dense, LSTM, TimeDistributed, Lambda, Reshape, RepeatedVector, Permute, Multiply, Add, Concatenate
from keras.optimizers import Adam
from keras.callbacks import TensorBoard
from keras.engine.topology import Container
from keras import backend as K

これを知っておくと、ちゃちゃっと小さいモデルを新たに作ろうとした時に「あれ、LSTMって keras.layers.recurrents だっけ?(違う)」とか「RepeatVectorって core だっけ?」とか「TimeDistributedってどこに入ってたっけ?」とかで悩んでいちいちググらなくて済みます。