Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_cls_model(input_shape):
- """
- :param input_shape: tuple (n_rows, n_cols, n_channgels)
- input shape of image for classification
- :return: nn model for classification
- """
- return Sequential([
- Conv2D(64, (3, 3), input_shape=input_shape, activation='relu', padding="same"),
- MaxPooling2D(pool_size=(2, 2)),
- Conv2D(128, (3, 3), activation='relu', padding="same"),
- Conv2D(128, (3, 3), activation='relu', padding="same"),
- MaxPooling2D(pool_size=(2, 2)),
- # Conv2D(256, (3, 3), activation='relu', padding="same"),
- # Conv2D(256, (3, 3), activation='relu', padding="same"),
- # Conv2D(256, (3, 3), activation='relu', padding="same"),
- # MaxPooling2D(pool_size=(2, 2)),
- # Conv2D(512, (3, 3), activation='relu'),
- # Conv2D(512, (3, 3), activation='relu'),
- # MaxPooling2D(pool_size=(2, 2)),
- # Conv2D(512, (3, 3), activation='relu'),
- # MaxPooling2D(pool_size=(2, 2)),
- Flatten(),
- Dense(64, activation='relu'),
- Dense(2),
- Activation('softmax')
- ])
- def fit_cls_model(X, y, force_save=False):
- """
- :param X: 4-dim ndarray with training images
- :param y: 2-dim ndarray with one-hot labels for training
- :return: trained nn model
- """
- model = get_cls_model((40, 100, 1))
- adam = optimizers.Adam(learning_rate=0.0001)
- model.compile(loss='categorical_crossentropy', optimizer=adam,
- metrics=[metrics.categorical_accuracy])
- print("model is compiled")
- model.fit(x=X, y=y, epochs=5)
- if (force_save):
- model.save('classifier_model.h5')
- # print("\n\n\n\n\n\n")
- print(X.shape, y.shape)
- return model
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement