39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
from itertools import filterfalse
|
|
import sys
|
|
import os
|
|
import keras
|
|
from keras.layers import Activation
|
|
from keras.layers import BatchNormalization
|
|
from keras.layers import Conv2D
|
|
from keras.layers import MaxPool2D
|
|
from keras import regularizers
|
|
from keras import optimizers
|
|
from matplotlib import pyplot
|
|
import numpy as np
|
|
import tensorflow
|
|
|
|
def inception_module(x,kernel_init,bias_init,filters_1x1,filters_3x3_reduce,filters_3x3,filters_5x5_reduce,filters_5x5,filters_pool_proj,name=None):
|
|
#1x1 route
|
|
conv_1x1=Conv2D(filters_1x1,kernel_size=(1,1),padding='same',activation='relu',kernel_initializer=kernel_init,bias_initializer=bias_init)(x)
|
|
#3x3 route is 1x1 CONV + 3x3 CONV
|
|
pre_conv_3x3=Conv2D(filters_3x3_reduce,kernel_size=(1,1),padding='same',activation='relu',kernel_initializer=kernel_init,bias_initializer=bias_init)(x)
|
|
conv_3x3=Conv2D(filters_3x3,kernel_size=(3,3),padding='same',activation='relu',kernel_initializer=kernel_init,bias_initializer=bias_init)(pre_conv_3x3)
|
|
#5x5 route is 1x1 CONV + 5x5 CONV
|
|
pre_conv_5x5=Conv2D(filters_5x5_reduce,kernel_size=(1,1),padding='same',activation='relu',kernel_initializer=kernel_init,bias_initializer=bias_init)(x)
|
|
conv_5x5=Conv2D(filters_5x5,kernel_size=(5,5),padding='same',activation='relu',kernel_initializer=kernel_init,bias_initializer=bias_init)(pre_conv_5x5)
|
|
#POOL route=POOL + 1x1 CONV
|
|
pool_proj=MaxPool2D((3,3),strides=(1,1),padding='same')(x)
|
|
pool_proj=Conv2D(filters_pool_proj,(1,1),padding='same',activation='relu',kernel_initializer=kernel_init,bias_initializer=bias_init)(pool_proj)
|
|
|
|
output=keras.layers.concatenate([conv_1x1,conv_3x3,conv_5x5,pool_proj],axis=3,name=name)
|
|
return output
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|