Advertisement
gashink_t

mo

Jun 5th, 2022
825
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.38 KB | None | 0 0
  1. import numpy
  2. from keras.models import Sequential
  3. from keras.layers import Dense, Dropout, Flatten, BatchNormalization, Activation
  4. from keras.constraints import maxnorm
  5. from keras.layers.convolutional import Conv2D, MaxPooling2D
  6. from keras.utils import np_utils
  7. from keras.datasets import cifar10
  8. from tensorflow.python.keras.callbacks import TensorBoard
  9. from time import time
  10.  
  11. # fix random seed for reproducibility
  12. seed = 21
  13. numpy.random.seed(seed)
  14.  
  15. # load data
  16. (X_train, y_train), (X_test, y_test) = cifar10.load_data()
  17.  
  18. # normalize inputs from 0-255 to 0.0-1.0
  19. X_train = X_train.astype('float32')
  20. X_test = X_test.astype('float32')
  21. X_train = X_train / 255.0
  22. X_test = X_test / 255.0
  23.  
  24. # one hot encode outputs
  25. y_train = np_utils.to_categorical(y_train)
  26. y_test = np_utils.to_categorical(y_test)
  27. num_classes = y_test.shape[1]
  28.  
  29. #Create the model
  30. model = Sequential()
  31.  
  32. model.add(Conv2D(32, (3, 3), input_shape=X_train.shape[1:], padding='same'))
  33. model.add(Activation('relu'))
  34. model.add(Dropout(0.2))
  35. model.add(BatchNormalization())
  36.  
  37. model.add(Conv2D(64, (3, 3), padding='same'))
  38. model.add(Activation('relu'))
  39. model.add(MaxPooling2D(pool_size=(2, 2)))
  40. model.add(Dropout(0.2))
  41. model.add(BatchNormalization())
  42.  
  43. model.add(Conv2D(64, (3, 3), padding='same'))
  44. model.add(Activation('relu'))
  45. model.add(MaxPooling2D(pool_size=(2, 2)))
  46. model.add(Dropout(0.2))
  47. model.add(BatchNormalization())
  48.  
  49. model.add(Conv2D(128, (3, 3), padding='same'))
  50. model.add(Activation('relu'))
  51. model.add(Dropout(0.2))
  52. model.add(BatchNormalization())
  53.  
  54. model.add(Flatten())
  55. model.add(Dropout(0.2))
  56.  
  57. model.add(Dense(256, kernel_constraint=maxnorm(3)))
  58. model.add(Activation('relu'))
  59. model.add(Dropout(0.2))
  60. model.add(BatchNormalization())
  61. model.add(Dense(128, kernel_constraint=maxnorm(3)))
  62. model.add(Activation('relu'))
  63. model.add(Dropout(0.2))
  64. model.add(BatchNormalization())
  65. model.add(Dense(num_classes))
  66. model.add(Activation('softmax'))
  67.  
  68. epochs = 1
  69. optimizer = 'Adam'
  70.  
  71. tensorboard = TensorBoard(log_dir="logs/{}".format(time()))
  72.  
  73. model.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])
  74.  
  75. print(model.summary())
  76.  
  77. model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=epochs, batch_size=64, callbacks = [tensorboard])
  78.  
  79. # Final evaluation of the model
  80.  
  81. scores = model.evaluate(X_test, y_test, verbose=0)
  82. print("Accuracy: %.2f%%" % (scores[1]*100))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement