回答編集履歴
1
動作確認コードを追加
test
CHANGED
@@ -71,3 +71,99 @@
|
|
71
71
|
|
72
72
|
|
73
73
|
ただ、このように学習前に前処理として画像を増やしておくと、メモリを圧迫しますので、通常は``model.fit_generator()`` を使って学習時にリアルタイムで新規の画像を生成する方法が一般的ではないでしょうか。
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
---
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
**【動作確認】**
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
確認コード
|
86
|
+
|
87
|
+
```Python
|
88
|
+
|
89
|
+
from keras.preprocessing.image import ImageDataGenerator
|
90
|
+
|
91
|
+
import numpy as np
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
# ダミーデータを生成
|
96
|
+
|
97
|
+
X_train = np.random.randint(0, 255, (4200, 1, 28, 28))
|
98
|
+
|
99
|
+
y_train = np.random.randint(0, 1, (4200, 15))
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
datagen = ImageDataGenerator(
|
104
|
+
|
105
|
+
rotation_range=15,
|
106
|
+
|
107
|
+
width_shift_range=0.1,
|
108
|
+
|
109
|
+
height_shift_range=0.1,
|
110
|
+
|
111
|
+
shear_range=0.2,
|
112
|
+
|
113
|
+
zoom_range=[0.4, 0],
|
114
|
+
|
115
|
+
#horizontal_flip=False,
|
116
|
+
|
117
|
+
#vertical_flip=False
|
118
|
+
|
119
|
+
)
|
120
|
+
|
121
|
+
#データ拡張実施
|
122
|
+
|
123
|
+
X_gen = datagen.flow(X_train, y_train, batch_size=4200)
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
for _ in range(10):
|
128
|
+
|
129
|
+
#データ生成
|
130
|
+
|
131
|
+
X_gen_new, y_gen_new = X_gen.__next__()
|
132
|
+
|
133
|
+
#データを結合
|
134
|
+
|
135
|
+
X_train = np.concatenate([X_train, X_gen_new])
|
136
|
+
|
137
|
+
y_train = np.concatenate([y_train, y_gen_new])
|
138
|
+
|
139
|
+
#データサイズを表示
|
140
|
+
|
141
|
+
print(X_train.shape, y_train.shape)
|
142
|
+
|
143
|
+
```
|
144
|
+
|
145
|
+
結果
|
146
|
+
|
147
|
+
```Text
|
148
|
+
|
149
|
+
(8400, 1, 28, 28) (8400, 15)
|
150
|
+
|
151
|
+
(12600, 1, 28, 28) (12600, 15)
|
152
|
+
|
153
|
+
(16800, 1, 28, 28) (16800, 15)
|
154
|
+
|
155
|
+
(21000, 1, 28, 28) (21000, 15)
|
156
|
+
|
157
|
+
(25200, 1, 28, 28) (25200, 15)
|
158
|
+
|
159
|
+
(29400, 1, 28, 28) (29400, 15)
|
160
|
+
|
161
|
+
(33600, 1, 28, 28) (33600, 15)
|
162
|
+
|
163
|
+
(37800, 1, 28, 28) (37800, 15)
|
164
|
+
|
165
|
+
(42000, 1, 28, 28) (42000, 15)
|
166
|
+
|
167
|
+
(46200, 1, 28, 28) (46200, 15)
|
168
|
+
|
169
|
+
```
|