<質問対象者>
ゼロから作るDeep learning -pythonで学ぶディープラーニングの理論と実装-
という本を読んだことのある方に初心者より質問です。
手書き数字認識を行うプログラムがch5にあるのですが、これをskleranにあるbreast_cancerに適用して動かしてみたいです。
まず、データの読み込みなどをするために、train_neuralnet.pyに以下を追加しました。
python
1#以下train_neuralnet.pyのプログラム一部 2 3from sklearn.datasets import load_breast_cancer#load_digits 4from sklearn.model_selection import train_test_split 5 6#データの読み込み 7SampleData = load_breast_cancer() 8#特徴データ 9feature = SampleData.data 10#ラベルデータ 11target = SampleData.target 12# 入力値と目標値を抽出 13x_train, x_test, t_train, t_test = train_test_split(feature, target, test_size=0.2) 14 15network = TwoLayerNet(input_size=input_size, hidden_size=10, output_size=2) 16 17iters_num = 10000 18train_size = x_train.shape[0] 19batch_size = 10 20learning_rate = 0.01 21 22. 23. 24. 25
また、今回の分類問題で正しいaccuracyを算出するために、two_layer_net.py内に記述されているaccuracyメソッドにおいて、if文をコメントアウトしました。
python
1#以下two_layer_net.pyのプログラム一部 2 # 正解率の算出 3 def accuracy(self, x, t): 4 y = self.predict(x) 5 y = np.argmax(y, axis=1) 6 #if t.ndim != 1 : t = np.argmax(t, axis=1) #手書き数字認識では必要 7 8 accuracy = np.sum(y == t) / float(x.shape[0]) 9 return accuracy
以上を踏まえてエポック数に対する正答率をプロットしてみたのですが、正答率が常に一定値になってしまいます。この本を読んだことがある方、他に修正が必要な箇所などあればご教示頂けないでしょうか。
なお、skleranから入手した手書き数字のデータに対してはうまく動作しました。
(もちろん、このときは上のif文はコメントアウトせず残しています)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/15 02:42
2021/07/15 11:20