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

質問編集履歴

1

コードを追加しました。

2021/10/01 14:45

投稿

pritu
pritu

スコア7

title CHANGED
File without changes
body CHANGED
@@ -12,4 +12,62 @@
12
12
 
13
13
  (ミニバッチ学習はバッチごとの損失、勾配を求めてその平均で重みを更新するという認識ででいます。)
14
14
 
15
- お手数をおかけしますが、よろしくお願い致します。
15
+ お手数をおかけしますが、よろしくお願い致します。
16
+
17
+ 以下コードになります。
18
+ ```Python
19
+ import keras
20
+ from keras.utils import np_utils
21
+ from keras.models import Sequential
22
+ from keras.layers.convolutional import Conv2D, MaxPooling2D
23
+ from keras.layers.core import Dense, Dropout, Activation, Flatten
24
+ import numpy as np
25
+ from sklearn.model_selection import train_test_split
26
+ from PIL import Image
27
+ import glob
28
+ import matplotlib.pyplot as plt
29
+
30
+ #画像が入った入力データ
31
+ X = X.astype('float32')
32
+ X = X / 255.0
33
+
34
+ #正解ラベルの形式を変換
35
+ Y = np_utils.to_categorical(Y, 4)
36
+
37
+ #学習用データとテストデータ
38
+ X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2,train_size=0.8)
39
+ ```
40
+ モデルの構築
41
+ ```Python
42
+ model = Sequential()
43
+
44
+ model.add(Conv2D(32, (3, 3), padding='same',input_shape=X_train.shape[1:]))
45
+ model.add(Activation('relu'))
46
+ model.add(Conv2D(32, (3, 3)))
47
+ model.add(Activation('relu'))
48
+ model.add(MaxPooling2D(pool_size=(2, 2)))
49
+ model.add(Dropout(0.25))
50
+
51
+ model.add(Conv2D(64, (3, 3), padding='same'))
52
+ model.add(Activation('relu'))
53
+ model.add(Conv2D(64, (3, 3)))
54
+ model.add(Activation('relu'))
55
+ model.add(MaxPooling2D(pool_size=(2, 2)))
56
+ model.add(Dropout(0.25))
57
+
58
+ model.add(Flatten())
59
+ model.add(Dense(512))
60
+ model.add(Activation('relu'))
61
+ model.add(Dropout(0.5))
62
+ model.add(Dense(4))
63
+ model.add(Activation('softmax'))
64
+
65
+ # コンパイル
66
+ model.compile(loss='categorical_crossentropy',optimizer='SGD',metrics=['accuracy'])
67
+
68
+ #訓練
69
+ history = model.fit(X_train, Y_train, epochs=100)
70
+ ```
71
+
72
+ これだとメモリ不足に陥るため、ミニバッチ学習で小分けに学習していきたいです。
73
+ (ちなみに画像サイズは700×500です。)