Guest User

Untitled

a guest
Dec 14th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. def custom_single_cnn(size, conv_layers=(8, 16, 32, 64), dense_layers=(512, 256), conv_dropout=0.2,
  2. dense_dropout=0.2):
  3. model = Sequential()
  4. model.add(
  5. Conv2D(conv_layers[0], kernel_size=(3, 3), padding='same', activation='relu', input_shape=(size, size, 1)))
  6. model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
  7. if conv_dropout:
  8. model.add(Dropout(conv_dropout))
  9. for conv_layer_size in conv_layers[1:]:
  10. model.add(Conv2D(conv_layer_size, kernel_size=(3, 3), activation='relu'))
  11. model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
  12. if conv_dropout:
  13. model.add(Dropout(conv_dropout))
  14. model.add(Flatten())
  15. for dense_layer_size in dense_layers:
  16. model.add(Dense(dense_layer_size, activation='relu'))
  17. model.add(Activation('relu'))
  18. if dense_dropout:
  19. model.add(Dropout(dense_dropout))
  20. model.add(Dense(NCATS, activation='softmax'))
  21. return model
  22.  
  23. <Model Declaration>
  24. model = custom_single_cnn(size=size,
  25. conv_layers=[128, 128, 256],
  26. dense_layers=[2048],
  27. conv_dropout=False,
  28. dense_dropout=0.10 )
  29. model.compile(optimizer=Adam(lr=0.002), loss='categorical_crossentropy',
  30. metrics=[categorical_crossentropy, categorical_accuracy, top_3_accuracy])
  31. print(model.summary())
Add Comment
Please, Sign In to add comment