Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. import pandas as pd
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import keras
  5. from IPython.display import Image
  6. import cv2
  7.  
  8. import warnings
  9. warnings.filterwarnings("ignore")
  10.  
  11. from keras.models import Model
  12. from keras.utils import plot_model,to_categorical
  13. from keras.layers import Conv2D,Dense,Flatten,BatchNormalization,Add,Activation,Dropout,\
  14. MaxPooling2D,AveragePooling2D,concatenate
  15. from keras.engine.input_layer import Input
  16. from keras.initializers import glorot_uniform
  17. from keras.regularizers import l2
  18. from keras.optimizers import Adam
  19.  
  20.  
  21. from keras.datasets import cifar10
  22.  
  23. (x_train,y_train),(x_test,y_test) = cifar10.load_data()
  24.  
  25. x_train = x_train[:10000]
  26. y_train = y_train[:10000]
  27.  
  28. x_train = np.array([cv2.resize(img, (224,224)) for img in x_train[:,:,:,:]])
  29. x_test = np.array([cv2.resize(img, (224,224)) for img in x_test[:,:,:,:]])
  30.  
  31. y_train = to_categorical(y_train)
  32.  
  33. x_train = x_train.astype('float32')/ 255
  34. x_test = x_test.astype('float32')/255
  35.  
  36.  
  37. def inception_layer(inputs,filter_1,filter_2_1,filter_2_2,
  38. filter_3_1,filter_3_2,filter_4):
  39. # print(inputs.shape)
  40.  
  41. Conv1x1 = Conv2D(filter_1,kernel_size=(1,1),strides=1,kernel_initializer = glorot_uniform(),
  42. activation='relu',padding='SAME')(inputs)
  43.  
  44. Conv3x3 = Conv2D(filter_2_1,kernel_size=(1,1),strides=1,kernel_initializer = glorot_uniform(),
  45. activation='relu',padding='SAME')(inputs)
  46. # print(Conv3x3.shape)
  47. Conv3x3 = Conv2D(filter_2_2,kernel_size=(3,3),strides=1,kernel_initializer = glorot_uniform(),
  48. activation='relu',padding='SAME')(Conv3x3)
  49. # print(Conv3x3.shape)
  50. Conv5x5 = Conv2D(filter_3_1,kernel_size=(1,1),strides=1,kernel_initializer= glorot_uniform(),
  51. activation='relu',padding='SAME')(inputs)
  52. # print(Conv5x5.shape)
  53. Conv5x5 = Conv2D(filter_3_2,kernel_size=(5,5),strides=1,kernel_initializer=glorot_uniform(),
  54. activation='relu',padding='SAME')(Conv5x5)
  55. # print(Conv5x5.shape)
  56.  
  57. pool_proj = MaxPooling2D((3,3),strides=1,padding='SAME')(inputs)
  58. pool_proj = Conv2D(filter_4,kernel_size=(1,1),strides=1,kernel_initializer = glorot_uniform(),
  59. activation='relu',padding='SAME')(pool_proj)
  60.  
  61. output = concatenate([Conv1x1,Conv3x3,Conv5x5,pool_proj],axis=3)
  62.  
  63. return output
  64.  
  65.  
  66. input_shape = x_train.shape[1:]
  67. input_layer = Input(shape=input_shape)
  68.  
  69. x = Conv2D(64,kernel_size=(7,7),strides=(2,2),padding='SAME',activation='relu',
  70. kernel_initializer = glorot_uniform())(input_layer)
  71. x = MaxPooling2D((3,3),2,padding='SAME')(x)
  72. x = Conv2D(64,kernel_size=(3,3),strides=1,padding='SAME',activation='relu',
  73. kernel_initializer = glorot_uniform())(x)
  74. x = Conv2D(192,kernel_size=(3,3),strides=1,padding='SAME',activation='relu',
  75. kernel_initializer = glorot_uniform())(x)
  76. x = MaxPooling2D((3,3),2,padding='SAME')(x)
  77.  
  78. inception3a = inception_layer(x,64,96,128,16,32,32)
  79. inception3b = inception_layer(inception3a,128,128,192,32,96,64)
  80.  
  81. x = MaxPooling2D((3,3),2,padding='SAME')(inception3b)
  82.  
  83. inception4a = inception_layer(x,192,96,208,16,48,64)
  84. inception4b = inception_layer(inception4a,160,112,224,24,64,64)
  85. inception4c = inception_layer(inception4b,128,128,256,24,64,64)
  86. inception4d = inception_layer(inception4c,112,114,288,32,64,64)
  87. inception4e = inception_layer(inception4d,256,160,320,32,128,128)
  88.  
  89. x = MaxPooling2D((3,3),3,padding='SAME')(inception4e)
  90.  
  91. inception5a = inception_layer(x,256,160,320,32,128,128)
  92. inception5b = inception_layer(inception5a,384,192,384,48,128,128)
  93.  
  94. x = AveragePooling2D((4,4),1)(inception5b)
  95. x = Dropout(0.40)(x)
  96.  
  97. x = Flatten()(x)
  98. x = Dense(10)(x)
  99. x = Activation('softmax')(x)
  100.  
  101. model = Model(input_layer,x)
  102. model.compile(loss='categorical_crossentropy',optimizer='sgd',metrics=['accuracy'])
  103.  
  104. history = model.fit(x_train,y_train,validation_split=0.1,epochs=5,batch_size=128)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement