Keras Functional API とSequentialモデルの違い

私はディープラーニングのコードを書くのにKerasを使って書いてます。

ですが、Kerasのドキュメントがわかりにくいんだよなぁぁ。なので、メモ的に書いておきます。

最初の方に出てくる話なのですが、Kerasではモデルというものを使って、ディープラーニングを作ります。(めちゃざっくりしてますが)

モデルの作り方に、

  1. Sequentialモデル
  2. Functional API

というのでつくるやり方の2通りが紹介されています。

一体何が違うの~?!( ゚Д゚) となっちゃいますよね。なんか、ネーミングも、Functional APIって、何かのAPI? Sequentialモデルとは全く似ても似つかないものなのでは???と思っちゃいますよね。

しかし、二つはモデルの作り方が違うだけです。

Sequentialモデルは、Sequentialは「順序通り」という意味でして、その名の通り、モデルを下記のようや

model = Sequential([
    Dense(32, input_shape=(784,)),
    Activation('relu'),
    Dense(10),
    Activation('softmax'),
])

下記のように

model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))

した場合、この順番通りにレイヤーが追加されて、処理がされるということです。

Functional APIは、複数の入出力を持ったモデルなど、Sequentialではできないような、ちょっと複雑なモデルが作れます。

アレの出力をコレの入力にも、アッチの入力にも使える、みたいなイメージです。

 

 

コメントを残す

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