model.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Tue Jun 21 10:53:51 2022
  4. model
  5. @author: fangjiasheng
  6. """
  7. from keras.layers import Lambda, Dense, Reshape, Conv2D, BatchNormalization, LeakyReLU, Masking, MaxPool2D
  8. from keras import layers, models, Sequential
  9. import keras.backend as K
  10. def direction_model(input_shape, output_shape):
  11. conv_num = 6
  12. # Input
  13. _input = layers.Input(shape=input_shape, dtype="float32", name="input")
  14. conv = Conv2D(16, (3, 3), padding='same')(_input)
  15. bn = BatchNormalization()(conv)
  16. relu = LeakyReLU(alpha=0.)(bn)
  17. max_pool = MaxPool2D()(relu)
  18. for i in range(conv_num):
  19. conv = Conv2D(16, (3, 3), padding='same')(max_pool)
  20. bn = BatchNormalization()(conv)
  21. relu = LeakyReLU(alpha=0.)(bn)
  22. max_pool = MaxPool2D()(relu)
  23. conv = Conv2D(16, (3, 3), padding='same')(max_pool)
  24. bn = BatchNormalization()(conv)
  25. relu = LeakyReLU(alpha=0.)(bn)
  26. max_pool = MaxPool2D((5, 5))(relu)
  27. dense = layers.Dense(output_shape, activation='softmax')(max_pool)
  28. squeeze = Lambda(lambda x: K.squeeze(x, axis=1))(dense)
  29. squeeze = Lambda(lambda x: K.squeeze(x, axis=1))(squeeze)
  30. model = models.Model(inputs=_input, outputs=squeeze)
  31. # model.summary(line_length=100)
  32. return model