Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. import numpy as np
  2. import os
  3. import skimage.io as io
  4. import skimage.transform as trans
  5. import numpy as np
  6. from tensorflow.keras.models import *
  7. from tensorflow.keras.layers import *
  8. from tensorflow.keras.optimizers import *
  9. from tensorflow.keras.callbacks import ModelCheckpoint, LearningRateScheduler
  10. from tensorflow.keras import backend as keras
  11.  
  12. from metricFunction import my_IoU
  13.  
  14.  
  15. def unet(pretrained_weights = None,input_size = (256,256,3)):
  16. inputs = Input(input_size)
  17. conv1 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(inputs)
  18. conv1 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv1)
  19. pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)
  20. conv2 = Conv2D(128, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(pool1)
  21. conv2 = Conv2D(128, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv2)
  22. pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)
  23. conv3 = Conv2D(256, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(pool2)
  24. conv3 = Conv2D(256, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv3)
  25. pool3 = MaxPooling2D(pool_size=(2, 2))(conv3)
  26. conv4 = Conv2D(512, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(pool3)
  27. conv4 = Conv2D(512, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv4)
  28. drop4 = Dropout(0.5)(conv4)
  29. pool4 = MaxPooling2D(pool_size=(2, 2))(drop4)
  30.  
  31. conv5 = Conv2D(1024, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(pool4)
  32. conv5 = Conv2D(1024, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv5)
  33. drop5 = Dropout(0.5)(conv5)
  34.  
  35. up6 = Conv2D(512, 2, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(UpSampling2D(size = (2,2))(drop5))
  36. merge6 = concatenate([drop4,up6], axis = 3)
  37. conv6 = Conv2D(512, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(merge6)
  38. conv6 = Conv2D(512, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv6)
  39.  
  40. up7 = Conv2D(256, 2, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(UpSampling2D(size = (2,2))(conv6))
  41. merge7 = concatenate([conv3,up7], axis = 3)
  42. conv7 = Conv2D(256, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(merge7)
  43. conv7 = Conv2D(256, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv7)
  44.  
  45. up8 = Conv2D(128, 2, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(UpSampling2D(size = (2,2))(conv7))
  46. merge8 = concatenate([conv2,up8], axis = 3)
  47. conv8 = Conv2D(128, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(merge8)
  48. conv8 = Conv2D(128, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv8)
  49.  
  50. up9 = Conv2D(64, 2, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(UpSampling2D(size = (2,2))(conv8))
  51. merge9 = concatenate([conv1,up9], axis = 3)
  52. conv9 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(merge9)
  53. conv9 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv9)
  54. conv9 = Conv2D(2, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv9)
  55. conv10 = Conv2D(1, 1, activation = 'sigmoid')(conv9)
  56.  
  57. model = Model(inputs = inputs, outputs = conv10)
  58.  
  59. model.compile(optimizer = Adam(lr = 1e-4), loss = 'binary_crossentropy', metrics = [my_IoU])
  60.  
  61. #model.summary()
  62.  
  63. if(pretrained_weights):
  64. model.load_weights(pretrained_weights)
  65.  
  66. return model
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement