質問編集履歴

1

削除

2019/09/12 07:15

投稿

dragon1
dragon1

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,173 +1,55 @@
1
- kerasを使って、画像を分類しようとしているのですが、いまいち精度が上がらず、過学習までしてしまいます。
2
-
3
- エラーは出ていないのですが、訓練データの作成方法が正しいかどうか一度確認していただきたいです。
1
+ 削除
4
2
 
5
3
 
6
4
 
7
- ```python
8
-
9
- import os
10
-
11
- import numpy as np
12
-
13
- import cv2
14
-
15
- import matplotlib.pyplot as plt
16
-
17
- from keras import layers, models, optimizers
18
-
19
- from keras.utils import np_utils
20
-
21
- from keras.callbacks import EarlyStopping
22
5
 
23
6
 
24
7
 
25
- NUM_CLASSES = 3 # 分類するクラス数
26
-
27
- IMG_SIZE = 280 # 画像の1辺の長さ
28
8
 
29
9
 
30
10
 
31
- # 画像のあるディレクトリ
32
-
33
- img_dirs = ['dog', 'lion', 'cat']
34
11
 
35
12
 
36
13
 
37
- # class name
38
-
39
- class_names = ['dog', 'lion', 'cat',]
40
14
 
41
15
 
42
16
 
43
- # 学習用画像データ
44
-
45
- train_images = []
46
-
47
- # 学習用データのラベル
48
-
49
- train_labels = []
50
-
51
- # テスト用画像データ
52
-
53
- test_images = []
54
-
55
- # テスト用データのラベル
56
-
57
- test_labels = []
58
17
 
59
18
 
60
19
 
61
- #学習用データセット作成
62
-
63
- for label, dir_name in enumerate(img_dirs):
64
-
65
- # ./data/以下の各ディレクトリ内のファイル名取得
66
-
67
- files = os.listdir(os.getcwd() + '/imgs/train_images/' + dir_name)
68
-
69
- for file in files:
70
-
71
- # 画像読み込み
72
-
73
- img = cv2.imread(os.getcwd() + '/imgs/train_images/' + dir_name + '/' + file)
74
-
75
- if img is not None:
76
-
77
- # 1辺がIMG_SIZEの正方形にリサイズ
78
-
79
- img = cv2.resize(img, dsize=(IMG_SIZE, IMG_SIZE), interpolation=cv2.INTER_NEAREST)
80
-
81
- # OpenCVの関数cvtColorでBGRとRGBを変換
82
-
83
- img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
84
-
85
- # Numpy配列にする
86
-
87
- data = np.asarray(img)
88
-
89
- # 配列に追加
90
-
91
- train_images.append(data)
92
-
93
- # ラベル
94
-
95
- train_labels.append(label)
96
20
 
97
21
 
98
22
 
99
- # numpy配列に変換
100
-
101
- train_images = np.array(train_images)
102
-
103
- train_labels = np.array(train_labels)
104
23
 
105
24
 
106
25
 
107
- #テスト用データセット作成
108
-
109
- for label, dir_name in enumerate(img_dirs):
110
-
111
- # ./data/以下の各ディレクトリ内のファイル名取得
112
-
113
- files = os.listdir(os.getcwd() + '/imgs/test_images/' + dir_name)
114
-
115
- for file in files:
116
-
117
- # 画像読み込み
118
-
119
- img = cv2.imread(os.getcwd() + '/imgs/test_images/' + dir_name + '/' + file)
120
-
121
- if img is not None:
122
-
123
- # 1辺がIMG_SIZEの正方形にリサイズ
124
-
125
- img = cv2.resize(img, (IMG_SIZE, IMG_SIZE))
126
-
127
- # OpenCVの関数cvtColorでBGRとRGBを変換
128
-
129
- img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
130
-
131
- # Numpy配列にする
132
-
133
- data = np.asarray(img)
134
-
135
- # 配列に追加
136
-
137
- test_images.append(data)
138
-
139
- # ラベル
140
-
141
- test_labels.append(label)
142
26
 
143
27
 
144
28
 
145
- # numpy配列に変換
146
-
147
- test_images = np.array(test_images)
148
-
149
- test_labels = np.array(test_labels)
150
29
 
151
30
 
152
31
 
153
- # ニューラルネットワークにデータを投入する前に、これらの値を0から1までの範囲にスケールする
154
-
155
- train_images = train_images.astype('float32') / 255.0
156
-
157
- test_images = test_images.astype('float32') / 255.0
158
32
 
159
33
 
160
34
 
161
- # One-Hotエンコーディングする
162
-
163
- train_labels = np_utils.to_categorical(train_labels, NUM_CLASSES)
164
-
165
- test_labels = np_utils.to_categorical(test_labels, NUM_CLASSES)
166
-
167
- ```
168
35
 
169
36
 
170
37
 
171
- 間違えてそうなところがないか、確認していただきたいです。
172
38
 
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
173
- 以上、よろくお願い致ます
55
+ 削除