始める無料で始める

ネットワークにレイヤーを追加する

これまでにより横に広いネットワークの試し方を見てきました。この演習では、より深いネットワーク(隠れ層を増やす)に挑戦します。

今回も出発点として model_1 というベースラインモデルがあります。これは隠れ層が1つで、ユニット数は 10 です。そのモデル構造のサマリーが表示されています。ここでは、各レイヤーのユニット数を10のままにして、隠れ層を3つ持つ同様のネットワークを作成します。

両方のモデルの学習には少し時間がかかるため、コードを実行した後、結果が表示されるまで数秒お待ちください。

この演習はコースの一部です

Pythonで学ぶDeep Learning入門

コースを見る

演習の手順

  • model_1 と同様の構成で、ただし隠れ層を1つではなく10ユニットの隠れ層を3つ持つようにした model_2 を定義してください。
    • 最初の隠れ層では input_shape を使って入力形状を指定します。
    • 3つの隠れ層には 'relu' 活性化関数を、出力層には 'softmax' を使用し、出力層のユニット数は2にします。
  • これまでと同様に model_2 をコンパイルします。optimizer'adam'loss'categorical_crossentropy'metrics=['accuracy'] としてください。
  • 両方のモデルを学習してどちらが良い結果かを可視化するために、"Submit Answer" を押してください!

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# The input shape to use in the first hidden layer
input_shape = (n_cols,)

# Create the new model: model_2
model_2 = ____

# Add the first, second, and third hidden layers
____
____
____

# Add the output layer
____

# Compile model_2
____

# Fit model 1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.4, verbose=False)

# Fit model 2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.4, verbose=False)

# Create the plot
plt.plot(model_1_training.history['val_loss'], 'r', model_2_training.history['val_loss'], 'b')
plt.xlabel('Epochs')
plt.ylabel('Validation score')
plt.show()
コードを編集して実行