Initial commit
This commit is contained in:
87
Tensorflow/concours_drive_2/model.py
Normal file
87
Tensorflow/concours_drive_2/model.py
Normal file
@@ -0,0 +1,87 @@
|
||||
import tensorflow as tf
|
||||
from tensorflow.keras import layers, models
|
||||
|
||||
def LossDice(y_true, y_pred):
|
||||
numerateur =tf.reduce_sum(y_true*y_pred, axis=(1, 2))
|
||||
denominateur=tf.reduce_sum(y_true+y_pred, axis=(1, 2))
|
||||
dice=2*numerateur/(denominateur+1E-4)
|
||||
return 1-dice
|
||||
|
||||
def LossJaccard(y_true, y_pred):
|
||||
intersection=tf.reduce_sum(y_true*y_pred, axis=(1, 2))
|
||||
union =tf.reduce_sum(y_true+y_pred, axis=(1, 2))
|
||||
jaccard=intersection/(union-intersection+1E-4)
|
||||
return 1-jaccard
|
||||
|
||||
def model(nbr):
|
||||
entree=layers.Input(shape=(576, 560, 3), dtype='float32')
|
||||
|
||||
result=layers.Conv2D(nbr, 3, activation='relu', padding='same')(entree)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.Conv2D(nbr, 3, activation='relu', padding='same')(result)
|
||||
result1=layers.BatchNormalization()(result)
|
||||
|
||||
result=layers.MaxPool2D()(result1)
|
||||
|
||||
result=layers.Conv2D(2*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.Conv2D(2*nbr, 3, activation='relu', padding='same')(result)
|
||||
result2=layers.BatchNormalization()(result)
|
||||
|
||||
result=layers.MaxPool2D()(result2)
|
||||
|
||||
result=layers.Conv2D(4*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.Conv2D(4*nbr, 3, activation='relu', padding='same')(result)
|
||||
result3=layers.BatchNormalization()(result)
|
||||
|
||||
result=layers.MaxPool2D()(result3)
|
||||
|
||||
result=layers.Conv2D(4*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.Conv2D(4*nbr, 3, activation='relu', padding='same')(result)
|
||||
result4=layers.BatchNormalization()(result)
|
||||
|
||||
result=layers.MaxPool2D()(result4)
|
||||
|
||||
result=layers.Conv2D(8*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.Conv2D(4*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
|
||||
result=layers.UpSampling2D()(result)
|
||||
result=tf.concat([result, result4], axis=3)
|
||||
|
||||
result=layers.Conv2D(8*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.Conv2D(4*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
|
||||
result=layers.UpSampling2D()(result)
|
||||
result=tf.concat([result, result3], axis=3)
|
||||
|
||||
result=layers.Conv2D(4*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.Conv2D(2*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
|
||||
result=layers.UpSampling2D()(result)
|
||||
result=tf.concat([result, result2], axis=3)
|
||||
|
||||
result=layers.Conv2D(2*nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.Conv2D(nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
|
||||
result=layers.UpSampling2D()(result)
|
||||
result=tf.concat([result, result1], axis=3)
|
||||
|
||||
result=layers.Conv2D(nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.Conv2D(nbr, 3, activation='relu', padding='same')(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
|
||||
sortie=layers.Conv2D(1, 1, activation='sigmoid', padding='same')(result)
|
||||
|
||||
model=models.Model(inputs=entree, outputs=sortie)
|
||||
return model
|
||||
Reference in New Issue
Block a user