Initial commit
This commit is contained in:
54
Tensorflow/tutoriel27/model.py
Normal file
54
Tensorflow/tutoriel27/model.py
Normal file
@@ -0,0 +1,54 @@
|
||||
import tensorflow as tf
|
||||
from tensorflow.keras import layers, models
|
||||
import config
|
||||
|
||||
def block_resnet(input, filters, kernel_size, reduce=False):
|
||||
result=layers.Conv2D(filters, kernel_size, strides=1, padding='SAME')(input)
|
||||
result=layers.BatchNormalization()(result)
|
||||
result=layers.LeakyReLU(alpha=0.1)(result)
|
||||
|
||||
if reduce is True:
|
||||
result=layers.Conv2D(filters, kernel_size, strides=2, padding='SAME')(result)
|
||||
else:
|
||||
result=layers.Conv2D(filters, kernel_size, strides=1, padding='SAME')(result)
|
||||
|
||||
if input.shape[-1]==filters:
|
||||
if reduce is True:
|
||||
shortcut=layers.Conv2D(filters, 1, strides=2, padding='SAME')(input)
|
||||
else:
|
||||
shortcut=input
|
||||
else:
|
||||
if reduce is True:
|
||||
shortcut=layers.Conv2D(filters, 1, strides=2, padding='SAME')(input)
|
||||
else:
|
||||
shortcut=layers.Conv2D(filters, 1, strides=1, padding='SAME')(input)
|
||||
|
||||
result=layers.add([result, shortcut])
|
||||
result=layers.LeakyReLU(alpha=0.1)(result)
|
||||
result=layers.BatchNormalization()(result)
|
||||
return result
|
||||
|
||||
def model(nbr_classes, nbr_boxes, cellule_y, cellule_x):
|
||||
entree=layers.Input(shape=(config.largeur, config.hauteur, 3), dtype='float32')
|
||||
|
||||
result=block_resnet(entree, 16, 3, False)
|
||||
result=block_resnet(result, 16, 3, True)
|
||||
|
||||
result=block_resnet(result, 32, 3, False)
|
||||
result=block_resnet(result, 32, 3, True)
|
||||
|
||||
result=block_resnet(result, 64, 3, False)
|
||||
result=block_resnet(result, 64, 3, False)
|
||||
result=block_resnet(result, 64, 3, True)
|
||||
|
||||
result=block_resnet(result, 128, 3, False)
|
||||
result=block_resnet(result, 128, 3, False)
|
||||
result=block_resnet(result, 128, 3, True)
|
||||
|
||||
result=layers.Conv2D(config.nbr_boxes*(5+config.nbr_classes), 1, padding='SAME')(result)
|
||||
sortie=layers.Reshape((config.cellule_y, config.cellule_x, config.nbr_boxes, 5+config.nbr_classes))(result)
|
||||
|
||||
model=models.Model(inputs=entree, outputs=sortie)
|
||||
|
||||
return model
|
||||
|
||||
Reference in New Issue
Block a user