質問編集履歴

1

keras_cnn.h5の保存コードを追加いたしました。よろしくお願い致します。

2018/12/25 09:40

投稿

hampty
hampty

スコア16

test CHANGED
@@ -1 +1 @@
1
- kerasで学習させたh5モデルからmlmodelへの変換
1
+ kerasで学習させたh5モデルからmlmodelへの変換しようとするとエラーがでる
test CHANGED
@@ -88,6 +88,152 @@
88
88
 
89
89
 
90
90
 
91
+
92
+
93
+ ```
94
+
95
+ from keras.models import Sequential
96
+
97
+
98
+
99
+ from keras.layers import Conv2D, MaxPooling2D
100
+
101
+ from keras.layers import Activation, Dropout, Flatten, Dense
102
+
103
+ from keras.utils import np_utils
104
+
105
+ import keras
106
+
107
+ import numpy as np
108
+
109
+
110
+
111
+
112
+
113
+ classes = ["perfect", "normal", "bad"]
114
+
115
+ num_classes = len(classes)
116
+
117
+ image_size = 75
118
+
119
+
120
+
121
+
122
+
123
+ def main():
124
+
125
+ X_train, X_test, y_train, y_test = np.load("./Judgment.npy")
126
+
127
+ X_train = X_train.astype("float") / 256
128
+
129
+ X_test = X_test.astype("float") / 256
130
+
131
+ y_train = np_utils.to_categorical(y_train, num_classes)
132
+
133
+ y_test = np_utils.to_categorical(y_test, num_classes)
134
+
135
+
136
+
137
+ model = model_train(X_train, y_train)
138
+
139
+ model_eval(model, X_test, y_test)
140
+
141
+
142
+
143
+
144
+
145
+ def model_train(X, y):
146
+
147
+ model = Sequential()
148
+
149
+ model.add(Conv2D(32, (3, 3), padding='same', input_shape=X.shape[1:]))
150
+
151
+ model.add(Activation('relu'))
152
+
153
+ model.add(Conv2D(32, (3, 3)))
154
+
155
+ model.add(Activation('relu'))
156
+
157
+ model.add(MaxPooling2D(pool_size=(2, 2)))
158
+
159
+ model.add(Dropout(0.25))
160
+
161
+
162
+
163
+ model.add(Conv2D(64, (3, 3), padding='same'))
164
+
165
+ model.add(Activation('relu'))
166
+
167
+ model.add(Conv2D(64, (3, 3)))
168
+
169
+ model.add(Activation('relu'))
170
+
171
+ model.add(MaxPooling2D(pool_size=(2, 2)))
172
+
173
+ model.add(Dropout(0.25))
174
+
175
+
176
+
177
+ model.add(Flatten())
178
+
179
+ model.add(Dense(512))
180
+
181
+ model.add(Activation('relu'))
182
+
183
+ model.add(Dropout(0.5))
184
+
185
+ model.add(Dense(3))
186
+
187
+ model.add(Activation('softmax'))
188
+
189
+
190
+
191
+ opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6)
192
+
193
+ model.compile(
194
+
195
+ loss='categorical_crossentropy', optimizer=opt, metrics=['accuracy'])
196
+
197
+ model.fit(X, y, batch_size=32, epochs=100)
198
+
199
+
200
+
201
+
202
+
203
+ model.save('./keras_cnn.h5')
204
+
205
+
206
+
207
+ return model
208
+
209
+
210
+
211
+
212
+
213
+ def model_eval(model, X, y):
214
+
215
+ scores = model.evaluate(X, y, verbose=1)
216
+
217
+ print('Test Loss: ', scores[0])
218
+
219
+ print('Test Accuracy: ', scores[1])
220
+
221
+
222
+
223
+
224
+
225
+ if __name__ == "__main__":
226
+
227
+ main()
228
+
229
+ ```
230
+
231
+
232
+
233
+
234
+
235
+
236
+
91
237
  ### 試したこと
92
238
 
93
239