2層のニューラルネットワークをスクラッチから実装

やりたいことは2階層のニューラルネットワークを実装して、猫なのか、猫じゃないなのかを判断するモデルを作ることです。CNN(畳み込みネットワーク)は使わず、スクラッチからNumpyでForward PropagationとBack propagationを実装します。 209枚の画像訓練データと50枚の画像テストデータを使います。 訓練データtrain_catvnoncat.h5とテストデータ test_catvnoncat.h5両方とも HDF5フォーマットです。 とりあえず訓練データを読み込んで中身を確認します。 import numpy as np import h5py train_dataset = h5py.File('./images/train_catvnoncat.h5', "r") print(list(train_dataset.keys())) 結果 ['list_classes', 'train_set_x', 'train_set_y'] 訓練データの画像セットとラベルをそれぞれ抽出します。訓練用の画像は209枚があって、どれも3つの色チャンネルで、 横 x 縦 64 x 64の画像です。 train_x_orig = np.array(train_dataset["train_set_x"]) # 訓練データ画像セット自体 train_y = np.array(train_dataset["train_set_y"]) # 訓練データ画像セットのラベル train_y = train_y.reshape(train_y.shape[0], -1).T print(train_x_orig.shape) print(train_y.shape) 結果: (209, 64, 64, 3) (1, 209) 訓練データと同様にテストデータを準備します。テストの画像データは50枚があって、どれも3つの色チャンネルで、 横 x 縦は 64 x 64の画像です。 test_dataset = h5py.File('./images/test_catvnoncat.h5', "r") test_x_orig = np.