質問編集履歴

1

コードを追加しました。

2021/10/01 14:45

投稿

pritu
pritu

スコア7

test CHANGED
File without changes
test CHANGED
@@ -27,3 +27,119 @@
27
27
 
28
28
 
29
29
  お手数をおかけしますが、よろしくお願い致します。
30
+
31
+
32
+
33
+ 以下コードになります。
34
+
35
+ ```Python
36
+
37
+ import keras
38
+
39
+ from keras.utils import np_utils
40
+
41
+ from keras.models import Sequential
42
+
43
+ from keras.layers.convolutional import Conv2D, MaxPooling2D
44
+
45
+ from keras.layers.core import Dense, Dropout, Activation, Flatten
46
+
47
+ import numpy as np
48
+
49
+ from sklearn.model_selection import train_test_split
50
+
51
+ from PIL import Image
52
+
53
+ import glob
54
+
55
+ import matplotlib.pyplot as plt
56
+
57
+
58
+
59
+ #画像が入った入力データ
60
+
61
+ X = X.astype('float32')
62
+
63
+ X = X / 255.0
64
+
65
+
66
+
67
+ #正解ラベルの形式を変換
68
+
69
+ Y = np_utils.to_categorical(Y, 4)
70
+
71
+
72
+
73
+ #学習用データとテストデータ
74
+
75
+ X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2,train_size=0.8)
76
+
77
+ ```
78
+
79
+ モデルの構築
80
+
81
+ ```Python
82
+
83
+ model = Sequential()
84
+
85
+
86
+
87
+ model.add(Conv2D(32, (3, 3), padding='same',input_shape=X_train.shape[1:]))
88
+
89
+ model.add(Activation('relu'))
90
+
91
+ model.add(Conv2D(32, (3, 3)))
92
+
93
+ model.add(Activation('relu'))
94
+
95
+ model.add(MaxPooling2D(pool_size=(2, 2)))
96
+
97
+ model.add(Dropout(0.25))
98
+
99
+
100
+
101
+ model.add(Conv2D(64, (3, 3), padding='same'))
102
+
103
+ model.add(Activation('relu'))
104
+
105
+ model.add(Conv2D(64, (3, 3)))
106
+
107
+ model.add(Activation('relu'))
108
+
109
+ model.add(MaxPooling2D(pool_size=(2, 2)))
110
+
111
+ model.add(Dropout(0.25))
112
+
113
+
114
+
115
+ model.add(Flatten())
116
+
117
+ model.add(Dense(512))
118
+
119
+ model.add(Activation('relu'))
120
+
121
+ model.add(Dropout(0.5))
122
+
123
+ model.add(Dense(4))
124
+
125
+ model.add(Activation('softmax'))
126
+
127
+
128
+
129
+ # コンパイル
130
+
131
+ model.compile(loss='categorical_crossentropy',optimizer='SGD',metrics=['accuracy'])
132
+
133
+
134
+
135
+ #訓練
136
+
137
+ history = model.fit(X_train, Y_train, epochs=100)
138
+
139
+ ```
140
+
141
+
142
+
143
+ これだとメモリ不足に陥るため、ミニバッチ学習で小分けに学習していきたいです。
144
+
145
+ (ちなみに画像サイズは700×500です。)