def build_model(num_classes=2):
img_input = Input(shape= (3, 1, 128, 128)) # number of frames/depth: 3 , number of channels: 1 , width: 128, height: 128
# ----------- 1st layer group ---------------
x = Convolution3D(nb_filter=64,kernel_dim1=3, kernel_dim2=3,kernel_dim3=3,border_mode='valid',activation='relu')(img_input)
x = MaxPooling3D(pool_size=(1,2,2), strides=(1,2,2), border_mode='valid')(x)
# ----------- 2nd layer group ---------------
x = Convolution3D(nb_filter=128,kernel_dim1=3, kernel_dim2=3, kernel_dim3=3,border_mode='valid',activation='relu')(x)
x = MaxPooling3D(pool_size=(2,2,2), strides=(2,2,2), border_mode='valid')(x)
# ----------- 3rd layer group ---------------
x = Convolution3D(nb_filter=256, kernel_dim1=3, kernel_dim2=3, kernel_dim3=3, border_mode='valid', activation='relu')(x)
x = Convolution3D(nb_filter=256, kernel_dim1=3, kernel_dim2=3, kernel_dim3=3, border_mode='valid', activation='relu')(x)
x = MaxPooling3D(pool_size=(2,2,2), strides=(2,2,2), border_mode='valid')(x)
# ----------- 4th layer group ---------------
x = Convolution3D(nb_filter=512,kernel_dim1=3, kernel_dim2=3, kernel_dim3=3, border_mode='valid', activation='relu')(x)
x = Convolution3D(nb_filter=512,kernel_dim1=3, kernel_dim2=3, kernel_dim3=3, border_mode='valid', activation='relu')(x)
x = MaxPooling3D(pool_size=(2,2,2), strides=(2,2,2), border_mode='valid')(x)
# ----------- 5th layer group ---------------
x = Convolution3D(nb_filter=512,kernel_dim1=3, kernel_dim2=3, kernel_dim3=3, border_mode='valid', activation='relu')(x)
x = Convolution3D(nb_filter=512,kernel_dim1=3, kernel_dim2=3, kernel_dim3=3, border_mode='valid', activation='relu')(x)
x = ZeroPadding3D(padding=(1, 1, 1))(x)
x = MaxPooling3D(pool_size=(2,2,2), strides=(2,2,2), border_mode='valid')(x)
x = Flatten()(x)
x = Dense(4096, activation='relu')(x)
x = Dense(4096, activation='relu')(x)
x = Dense(487)(x)
x = Dense(num_classes, activation='softmax')(x)
return x, img_input
____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
input_1 (InputLayer) (None, 3, 1, 128, 128 0
____________________________________________________________________________________________________
convolution3d_1 (Convolution3D) (None, 1, -1, 126, 64 221248 input_1[0][0]
____________________________________________________________________________________________________
maxpooling3d_1 (MaxPooling3D) (None, 1, -1, 63, 64) 0 convolution3d_1[0][0]
____________________________________________________________________________________________________
convolution3d_2 (Convolution3D) (None, -1, -3, 61, 12 221312 maxpooling3d_1[0][0]
____________________________________________________________________________________________________
maxpooling3d_2 (MaxPooling3D) (None, -1, -2, 30, 12 0 convolution3d_2[0][0]
____________________________________________________________________________________________________
convolution3d_3 (Convolution3D) (None, -3, -4, 28, 25 884992 maxpooling3d_2[0][0]
____________________________________________________________________________________________________
convolution3d_4 (Convolution3D) (None, -5, -6, 26, 25 1769728 convolution3d_3[0][0]
____________________________________________________________________________________________________
maxpooling3d_3 (MaxPooling3D) (None, -3, -3, 13, 25 0 convolution3d_4[0][0]
____________________________________________________________________________________________________
convolution3d_5 (Convolution3D) (None, -5, -5, 11, 51 3539456 maxpooling3d_3[0][0]
____________________________________________________________________________________________________
convolution3d_6 (Convolution3D) (None, -7, -7, 9, 512 7078400 convolution3d_5[0][0]
____________________________________________________________________________________________________
maxpooling3d_4 (MaxPooling3D) (None, -4, -4, 4, 512 0 convolution3d_6[0][0]
____________________________________________________________________________________________________
convolution3d_7 (Convolution3D) (None, -6, -6, 2, 512 7078400 maxpooling3d_4[0][0]
____________________________________________________________________________________________________
convolution3d_8 (Convolution3D) (None, -8, -8, 0, 512 7078400 convolution3d_7[0][0]
____________________________________________________________________________________________________
zeropadding3d_1 (ZeroPadding3D) (None, -6, -6, 2, 512 0 convolution3d_8[0][0]
____________________________________________________________________________________________________
maxpooling3d_5 (MaxPooling3D) (None, -3, -3, 1, 512 0 zeropadding3d_1[0][0]
____________________________________________________________________________________________________
flatten_1 (Flatten) (None, 4608) 0 maxpooling3d_5[0][0]
____________________________________________________________________________________________________
dense_1 (Dense) (None, 4096) 18878464 flatten_1[0][0]
____________________________________________________________________________________________________
dense_2 (Dense) (None, 4096) 16781312 dense_1[0][0]
____________________________________________________________________________________________________
dense_3 (Dense) (None, 487) 1995239 dense_2[0][0]
____________________________________________________________________________________________________
dense_4 (Dense) (None, 2) 976 dense_3[0][0]
====================================================================================================
Total params: 65527927
____________________________________________________________________________________________________
Model Compiled