th0m45s5helby

Untitled

Apr 11th, 2022
994
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.02 KB | None | 0 0
  1. import tensorflow as tf
  2. from tensorflow.keras.models import Sequential
  3. from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten, Conv2D, MaxPooling2D
  4. from tensorflow.keras.layers import ZeroPadding2D
  5. from keras.layers import BatchNormalization
  6. from tensorflow.keras.preprocessing.image import ImageDataGenerator
  7.  
  8. model = Sequential()
  9.  
  10. model.add(Conv2D(64, (9, 9), input_shape=(100,100,3),padding='same'))
  11. model.add(BatchNormalization())
  12. model.add(Activation('relu'))
  13. model.add(MaxPooling2D(pool_size=(2, 2)))
  14.  
  15. model.add(Conv2D(128, (5, 5), padding='same'))
  16. model.add(BatchNormalization())
  17. model.add(Activation('relu'))
  18. model.add(MaxPooling2D(pool_size=(2, 2)))
  19.  
  20. model.add(ZeroPadding2D((1, 1)))
  21. model.add(Conv2D(256, (3, 3), padding='same'))
  22. model.add(BatchNormalization())
  23. model.add(Activation('relu'))
  24. model.add(MaxPooling2D(pool_size=(2, 2)))
  25.  
  26. model.add(ZeroPadding2D((1, 1)))
  27. model.add(Conv2D(512, (3, 3), padding='same'))
  28. model.add(BatchNormalization())
  29. model.add(Activation('relu'))
  30.  
  31. model.add(ZeroPadding2D((1, 1)))
  32. model.add(Conv2D(512, (3, 3), padding='same'))
  33. model.add(BatchNormalization())
  34. model.add(Activation('relu'))
  35. model.add(MaxPooling2D(pool_size=(2, 2)))
  36.  
  37.  
  38. model.add(Flatten())
  39. model.add(Dense(64))
  40. model.add(BatchNormalization())
  41. model.add(Activation('relu'))
  42. model.add(Dropout(0.5))
  43.  
  44. model.add(Dense(128))
  45. model.add(BatchNormalization())
  46. model.add(Activation('relu'))
  47. model.add(Dropout(0.5))
  48.  
  49. model.add(Dense(1))
  50. model.add(BatchNormalization())
  51. model.add(Activation('sigmoid'))
  52.  
  53. model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
  54.  
  55. train_datagen = ImageDataGenerator(rescale = 1./255,
  56.                                    rotation_range=30,
  57.                                    shear_range=0.2,
  58.                                    zoom_range=[0.8, 1.2],
  59.                                     horizontal_flip=True,
  60. #                                     vertical_flip = True,
  61.                                     fill_mode='nearest')
  62.  
  63. test_datagen = ImageDataGenerator(rescale = 1./255)
  64.  
  65. training_set = train_datagen.flow_from_directory('/content/data/train',
  66.                                                  target_size = (100, 100),
  67.                                                  batch_size = 64,
  68.                                                  class_mode = 'binary')
  69.  
  70. test_set = test_datagen.flow_from_directory('/content/data/val',
  71.                                             target_size = (100, 100),
  72.                                             batch_size = 64,
  73.                                             class_mode = 'binary')
  74. my_callbacks = [
  75.     # tf.keras.callbacks.EarlyStopping(patience=4, verbose=1),
  76.     tf.keras.callbacks.ReduceLROnPlateau(factor=0.1, patience=3, min_lr=0.00001, verbose=1),
  77.     tf.keras.callbacks.ModelCheckpoint('my_model2.h5',
  78.     verbose=1, save_best_only=True, save_weights_only=False)
  79.     ]
  80.  
  81. model.fit(training_set, epochs=1000, validation_data = test_set, callbacks=my_callbacks)
  82.  
  83. model.save('my_model2.h5')
  84.  
Advertisement
Add Comment
Please, Sign In to add comment