Guest User

Untitled

a guest
Jan 17th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.63 KB | None | 0 0
  1. def inference(images, keep_prob):
  2.  
  3. # 416 x 416 x 3
  4. with tf.variable_scope('downSample_block1') as scope:
  5. conv1 = Conv2D(filters=64, kernel_size=(3, 3), strides=(1, 1),
  6. padding='valid', name='conv1', activation='relu')(images)
  7. conv2 = Conv2D(filters=64, kernel_size=(3, 3), strides=(1, 1),
  8. padding='valid', name='conv2', activation='relu')(conv1)
  9. pool1 = MaxPool2D(pool_size=(2, 2), strides=(2, 2), padding='valid', name='pool')(conv2)
  10.  
  11. with tf.variable_scope('downSample_block2') as scope:
  12. conv3 = Conv2D(filters=128, kernel_size=(3, 3), strides=(1, 1),
  13. padding='valid', name='conv1', activation='relu')(pool1)
  14. conv4 = Conv2D(filters=128, kernel_size=(3, 3), strides=(1, 1),
  15. padding='valid', name='conv2', activation='relu')(conv3)
  16. pool2 = MaxPool2D(pool_size=(2, 2), strides=(2, 2), padding='valid', name='pool')(conv4)
  17.  
  18. with tf.variable_scope('downSample_block3') as scope:
  19. conv5 = Conv2D(filters=256, kernel_size=(3, 3), strides=(1, 1),
  20. padding='valid', name='conv1', activation='relu')(pool2)
  21. conv6 = Conv2D(filters=256, kernel_size=(3, 3), strides=(1, 1),
  22. padding='valid', name='conv2', activation='relu')(conv5)
  23. pool3 = MaxPool2D(pool_size=(2, 2), strides=(2, 2), padding='valid', name='pool')(conv6)
  24.  
  25. with tf.variable_scope('downSample_block4') as scope:
  26. conv7 = Conv2D(filters=512, kernel_size=(3, 3), strides=(1, 1),
  27. padding='valid', name='conv1', activation='relu')(pool3)
  28. conv8 = Conv2D(filters=512, kernel_size=(3, 3), strides=(1, 1),
  29. padding='valid', name='conv2', activation='relu')(conv7)
  30. pool4 = MaxPool2D(pool_size=(2, 2), strides=(2, 2), padding='valid', name='pool')(conv8)
  31.  
  32. with tf.variable_scope('downSample_block5') as scope:
  33. conv9 = Conv2D(filters=1024, kernel_size=(3, 3), strides=(1, 1),
  34. padding='valid', name='conv1', activation='relu')(pool4)
  35. conv10 = Conv2D(filters=1024, kernel_size=(3, 3), strides=(1, 1),
  36. padding='valid', name='conv2', activation='relu')(conv9)
  37. drop1 = tf.nn.dropout(conv10, keep_prob)
  38.  
  39. with tf.variable_scope('upSample_block1') as scope:
  40. deconv1 = Conv2DTranspose(filters=512, kernel_size=(2, 2), strides=(2, 2),
  41. padding='same', name='deconv')(drop1)
  42. crop1 = 4
  43. crop2 = 40
  44. concat_deconv1 = tf.concat([conv8[:, crop1 : crop2 , crop1 : crop2, :], deconv1],axis=3)
  45. conv11 = Conv2D(filters=512, kernel_size=(3, 3), strides=(1, 1),
  46. padding='valid', name='conv1', activation='relu')(concat_deconv1)
  47. conv12 = Conv2D(filters=512, kernel_size=(3, 3), strides=(1, 1),
  48. padding='valid', name='conv2', activation='relu')(conv11)
  49.  
  50. with tf.variable_scope('upSample_block2') as scope:
  51. deconv2 = Conv2DTranspose(filters=256, kernel_size=(2, 2), strides=(2, 2),
  52. padding='same', name='deconv')(conv12)
  53. crop1 = 16
  54. crop2 = 80
  55. concat_deconv2 = tf.concat([conv6[:, crop1 : crop2 , crop1 : crop2, :], deconv2],axis=3)
  56. conv13 = Conv2D(filters=256, kernel_size=(3, 3), strides=(1, 1),
  57. padding='valid', name='conv1', activation='relu')(concat_deconv2)
  58. conv14 = Conv2D(filters=256, kernel_size=(3, 3), strides=(1, 1),
  59. padding='valid', name='conv2', activation='relu')(conv13)
  60.  
  61. with tf.variable_scope('upSample_block3') as scope:
  62. deconv3 = Conv2DTranspose(filters=128, kernel_size=(2, 2), strides=(2, 2),
  63. padding='same', name='deconv')(conv14)
  64. crop1 = 40
  65. crop2 = 160
  66. concat_deconv3 = tf.concat([conv4[:, crop1 : crop2 , crop1 : crop2, :], deconv3],axis=3)
  67. conv15 = Conv2D(filters=128, kernel_size=(3, 3), strides=(1, 1),
  68. padding='valid', name='conv1', activation='relu')(concat_deconv3)
  69. conv16 = Conv2D(filters=128, kernel_size=(3, 3), strides=(1, 1),
  70. padding='valid', name='conv2', activation='relu')(conv15)
  71.  
  72. with tf.variable_scope('upSample_block4') as scope:
  73. deconv4 = Conv2DTranspose(filters=64, kernel_size=(2, 2), strides=(2, 2),
  74. padding='same', name='deconv')(conv16)
  75. crop1 = 89
  76. crop2 = 321
  77. concat_deconv4 = tf.concat([conv2[:, crop1 : crop2 , crop1 : crop2, :], deconv4],axis=3)
  78. conv17 = Conv2D(filters=64, kernel_size=(3, 3), strides=(1, 1),
  79. padding='valid', name='conv1', activation='relu')(concat_deconv4)
  80. conv18 = Conv2D(filters=64, kernel_size=(3, 3), strides=(1, 1),
  81. padding='valid', name='conv2', activation='relu')(conv17)
  82. drop2 = tf.nn.dropout(conv18, keep_prob)
  83.  
  84. with tf.variable_scope('Classification') as scope:
  85. conv19 = Conv2D(filters=2, kernel_size=(1, 1), strides=(1, 1),
  86. padding='valid', name='conv1', activation='relu')(drop2)
  87.  
  88. with tf.variable_scope('softmax') as scope:
  89. softmax = soft_max(conv19)
  90.  
  91. # Output 228 x 228 x 2
  92.  
  93. return softmax
Add Comment
Please, Sign In to add comment