teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

削除

2019/09/12 07:15

投稿

dragon1
dragon1

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,87 +1,28 @@
1
- kerasを使って、画像を分類しようとしているのですが、いまいち精度が上がらず、過学習までしてしまいます。
2
- エラーは出ていないのですが、訓練データの作成方法が正しいかどうか一度確認していただきたいです。
1
+ 削除
3
2
 
4
- ```python
5
- import os
6
- import numpy as np
7
- import cv2
8
- import matplotlib.pyplot as plt
9
- from keras import layers, models, optimizers
10
- from keras.utils import np_utils
11
- from keras.callbacks import EarlyStopping
12
3
 
13
- NUM_CLASSES = 3 # 分類するクラス数
14
- IMG_SIZE = 280 # 画像の1辺の長さ
15
4
 
16
- # 画像のあるディレクトリ
17
- img_dirs = ['dog', 'lion', 'cat']
18
5
 
19
- # class name
20
- class_names = ['dog', 'lion', 'cat',]
21
6
 
22
- # 学習用画像データ
23
- train_images = []
24
- # 学習用データのラベル
25
- train_labels = []
26
- # テスト用画像データ
27
- test_images = []
28
- # テスト用データのラベル
29
- test_labels = []
30
7
 
31
- #学習用データセット作成
32
- for label, dir_name in enumerate(img_dirs):
33
- # ./data/以下の各ディレクトリ内のファイル名取得
34
- files = os.listdir(os.getcwd() + '/imgs/train_images/' + dir_name)
35
- for file in files:
36
- # 画像読み込み
37
- img = cv2.imread(os.getcwd() + '/imgs/train_images/' + dir_name + '/' + file)
38
- if img is not None:
39
- # 1辺がIMG_SIZEの正方形にリサイズ
40
- img = cv2.resize(img, dsize=(IMG_SIZE, IMG_SIZE), interpolation=cv2.INTER_NEAREST)
41
- # OpenCVの関数cvtColorでBGRとRGBを変換
42
- img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
43
- # Numpy配列にする
44
- data = np.asarray(img)
45
- # 配列に追加
46
- train_images.append(data)
47
- # ラベル
48
- train_labels.append(label)
49
8
 
50
- # numpy配列に変換
51
- train_images = np.array(train_images)
52
- train_labels = np.array(train_labels)
53
9
 
54
- #テスト用データセット作成
55
- for label, dir_name in enumerate(img_dirs):
56
- # ./data/以下の各ディレクトリ内のファイル名取得
57
- files = os.listdir(os.getcwd() + '/imgs/test_images/' + dir_name)
58
- for file in files:
59
- # 画像読み込み
60
- img = cv2.imread(os.getcwd() + '/imgs/test_images/' + dir_name + '/' + file)
61
- if img is not None:
62
- # 1辺がIMG_SIZEの正方形にリサイズ
63
- img = cv2.resize(img, (IMG_SIZE, IMG_SIZE))
64
- # OpenCVの関数cvtColorでBGRとRGBを変換
65
- img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
66
- # Numpy配列にする
67
- data = np.asarray(img)
68
- # 配列に追加
69
- test_images.append(data)
70
- # ラベル
71
- test_labels.append(label)
72
10
 
73
- # numpy配列に変換
74
- test_images = np.array(test_images)
75
- test_labels = np.array(test_labels)
76
11
 
77
- # ニューラルネットワークにデータを投入する前に、これらの値を0から1までの範囲にスケールする
78
- train_images = train_images.astype('float32') / 255.0
79
- test_images = test_images.astype('float32') / 255.0
80
12
 
81
- # One-Hotエンコーディングする
82
- train_labels = np_utils.to_categorical(train_labels, NUM_CLASSES)
83
- test_labels = np_utils.to_categorical(test_labels, NUM_CLASSES)
84
- ```
85
13
 
86
- 間違えてそうなところがないか、確認していただきたいです。
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
87
- 以上、よろくお願い致し
28
+ 削除しました