多層ニューラルネットワーク
この演習では、隠れ層が2層あるニューラルネットワークの順伝播を行うコードを書きます。各隠れ層には2つのノードがあります。入力データは input_data としてあらかじめ読み込まれています。最初の隠れ層のノードは node_0_0 と node_0_1 と呼び、それぞれの重みは weights['node_0_0'] と weights['node_0_1'] として事前に読み込まれています。
2番目の隠れ層のノードは node_1_0 と node_1_1 と呼び、それぞれの重みは weights['node_1_0'] と weights['node_1_1'] として事前に読み込まれています。
最後に、事前に読み込まれた weights['output'] の重みを使って、隠れ層のノードからモデル出力を作成します。

この演習はコースの一部です
Pythonで学ぶDeep Learning入門
演習の手順
- 与えられた
input_dataと重みweights['node_0_0']を使ってnode_0_0_inputを計算し、relu()関数を適用してnode_0_0_outputを得ます。 - 同様に
node_0_1_inputを計算して、node_0_1_outputを得ます。 - 重み
weights['node_1_0']と、最初の隠れ層の出力hidden_0_outputsを使ってnode_1_0_inputを計算し、relu()関数を適用してnode_1_0_outputを得ます。 - 同様に
node_1_1_inputを計算して、node_1_1_outputを得ます。 - 重み
weights['output']と、2番目の隠れ層の出力配列hidden_1_outputsを使ってmodel_outputを計算します。この出力にはrelu()関数を適用しないでください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
def predict_with_network(input_data):
# Calculate node 0 in the first hidden layer
node_0_0_input = (____ * ____).sum()
node_0_0_output = relu(____)
# Calculate node 1 in the first hidden layer
node_0_1_input = ____
node_0_1_output = ____
# Put node values into array: hidden_0_outputs
hidden_0_outputs = np.array([node_0_0_output, node_0_1_output])
# Calculate node 0 in the second hidden layer
node_1_0_input = ____
node_1_0_output = ____
# Calculate node 1 in the second hidden layer
node_1_1_input = ____
node_1_1_output = ____
# Put node values into array: hidden_1_outputs
hidden_1_outputs = np.array([node_1_0_output, node_1_1_output])
# Calculate model output: model_output
model_output = ____
# Return model_output
return(model_output)
output = predict_with_network(input_data)
print(output)