| @@ 14-46 (lines=33) @@ | ||
| 11 | y_test = to_categorical(y_test, 10) |
|
| 12 | ||
| 13 | ||
| 14 | def cnn(para, X_train, y_train): |
|
| 15 | model = Sequential() |
|
| 16 | model.add( |
|
| 17 | Conv2D(para["filter.0"], (3, 3), padding="same", input_shape=X_train.shape[1:]) |
|
| 18 | ) |
|
| 19 | model.add(Activation("relu")) |
|
| 20 | model.add(Conv2D(para["filter.0"], (3, 3))) |
|
| 21 | model.add(Activation("relu")) |
|
| 22 | model.add(MaxPooling2D(pool_size=(2, 2))) |
|
| 23 | model.add(Dropout(0.25)) |
|
| 24 | ||
| 25 | model.add(Conv2D(para["filter.0"], (3, 3), padding="same")) |
|
| 26 | model.add(Activation("relu")) |
|
| 27 | model.add(Conv2D(para["filter.0"], (3, 3))) |
|
| 28 | model.add(Activation("relu")) |
|
| 29 | model.add(MaxPooling2D(pool_size=(2, 2))) |
|
| 30 | model.add(Dropout(0.25)) |
|
| 31 | ||
| 32 | model.add(Flatten()) |
|
| 33 | model.add(Dense(para["layer.0"])) |
|
| 34 | model.add(Activation("relu")) |
|
| 35 | model.add(Dropout(0.5)) |
|
| 36 | model.add(Dense(10)) |
|
| 37 | model.add(Activation("softmax")) |
|
| 38 | ||
| 39 | model.compile( |
|
| 40 | optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"] |
|
| 41 | ) |
|
| 42 | model.fit(X_train, y_train, epochs=25, batch_size=128) |
|
| 43 | ||
| 44 | _, score = model.evaluate(x=X_test, y=y_test) |
|
| 45 | ||
| 46 | return score |
|
| 47 | ||
| 48 | ||
| 49 | search_config = {cnn: {"filter.0": [16, 32, 64, 128], "layer.0": range(100, 1000, 100)}} |
|
| @@ 14-44 (lines=31) @@ | ||
| 11 | y_test = to_categorical(y_test, 10) |
|
| 12 | ||
| 13 | ||
| 14 | def cnn(para, X_train, y_train): |
|
| 15 | nn = Sequential() |
|
| 16 | nn.add( |
|
| 17 | Conv2D(para["filter.0"], (3, 3), padding="same", input_shape=X_train.shape[1:]) |
|
| 18 | ) |
|
| 19 | nn.add(Activation("relu")) |
|
| 20 | nn.add(Conv2D(para["filter.0"], (3, 3))) |
|
| 21 | nn.add(Activation("relu")) |
|
| 22 | nn.add(MaxPooling2D(pool_size=(2, 2))) |
|
| 23 | nn.add(Dropout(0.25)) |
|
| 24 | ||
| 25 | nn.add(Conv2D(para["filter.0"], (3, 3), padding="same")) |
|
| 26 | nn.add(Activation("relu")) |
|
| 27 | nn.add(Conv2D(para["filter.0"], (3, 3))) |
|
| 28 | nn.add(Activation("relu")) |
|
| 29 | nn.add(MaxPooling2D(pool_size=(2, 2))) |
|
| 30 | nn.add(Dropout(0.25)) |
|
| 31 | ||
| 32 | nn.add(Flatten()) |
|
| 33 | nn.add(Dense(para["layer.0"])) |
|
| 34 | nn.add(Activation("relu")) |
|
| 35 | nn.add(Dropout(0.5)) |
|
| 36 | nn.add(Dense(10)) |
|
| 37 | nn.add(Activation("softmax")) |
|
| 38 | ||
| 39 | nn.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"]) |
|
| 40 | nn.fit(X_train, y_train, epochs=25, batch_size=128) |
|
| 41 | ||
| 42 | _, score = nn.evaluate(x=X_test, y=y_test) |
|
| 43 | ||
| 44 | return score |
|
| 45 | ||
| 46 | ||
| 47 | search_config = {cnn: {"filter.0": [16, 32, 64, 128], "layer.0": range(100, 1000, 100)}} |
|