Skip to content

Latest commit

 

History

History
324 lines (311 loc) · 29.7 KB

XceptionNet.md

File metadata and controls

324 lines (311 loc) · 29.7 KB
from tensorflow import keras
import numpy as np
from pyradox import convnets
inputs = keras.Input(shape=(28, 28, 1))
x = keras.layers.ZeroPadding2D(2)(inputs)                # padding to increase dimenstions to 32x32
x = keras.layers.Conv2D(3, (1, 1), padding='same')(x)    # increasing the number of channels to 3
x = convnets.XceptionNet()(x)
x = keras.layers.GlobalAveragePooling2D()(x)
outputs = keras.layers.Dense(10, activation="softmax")(x)

model = keras.models.Model(inputs=inputs, outputs=outputs) 
model.summary()
keras.utils.plot_model(model, show_shapes=True, expand_nested=True)
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 28, 28, 1)]  0                                            
__________________________________________________________________________________________________
zero_padding2d (ZeroPadding2D)  (None, 32, 32, 1)    0           input_1[0][0]                    
__________________________________________________________________________________________________
conv2d (Conv2D)                 (None, 32, 32, 3)    6           zero_padding2d[0][0]             
__________________________________________________________________________________________________
conv2d_1 (Conv2D)               (None, 15, 15, 32)   864         conv2d[0][0]                     
__________________________________________________________________________________________________
batch_normalization (BatchNorma (None, 15, 15, 32)   128         conv2d_1[0][0]                   
__________________________________________________________________________________________________
activation (Activation)         (None, 15, 15, 32)   0           batch_normalization[0][0]        
__________________________________________________________________________________________________
conv2d_2 (Conv2D)               (None, 13, 13, 64)   18432       activation[0][0]                 
__________________________________________________________________________________________________
batch_normalization_1 (BatchNor (None, 13, 13, 64)   256         conv2d_2[0][0]                   
__________________________________________________________________________________________________
activation_1 (Activation)       (None, 13, 13, 64)   0           batch_normalization_1[0][0]      
__________________________________________________________________________________________________
separable_conv2d (SeparableConv (None, 13, 13, 128)  8768        activation_1[0][0]               
__________________________________________________________________________________________________
batch_normalization_3 (BatchNor (None, 13, 13, 128)  512         separable_conv2d[0][0]           
__________________________________________________________________________________________________
activation_2 (Activation)       (None, 13, 13, 128)  0           batch_normalization_3[0][0]      
__________________________________________________________________________________________________
separable_conv2d_1 (SeparableCo (None, 13, 13, 128)  17536       activation_2[0][0]               
__________________________________________________________________________________________________
batch_normalization_4 (BatchNor (None, 13, 13, 128)  512         separable_conv2d_1[0][0]         
__________________________________________________________________________________________________
conv2d_3 (Conv2D)               (None, 7, 7, 128)    8192        activation_1[0][0]               
__________________________________________________________________________________________________
max_pooling2d (MaxPooling2D)    (None, 7, 7, 128)    0           batch_normalization_4[0][0]      
__________________________________________________________________________________________________
batch_normalization_2 (BatchNor (None, 7, 7, 128)    512         conv2d_3[0][0]                   
__________________________________________________________________________________________________
add (Add)                       (None, 7, 7, 128)    0           max_pooling2d[0][0]              
                                                                 batch_normalization_2[0][0]      
__________________________________________________________________________________________________
activation_3 (Activation)       (None, 7, 7, 128)    0           add[0][0]                        
__________________________________________________________________________________________________
separable_conv2d_2 (SeparableCo (None, 7, 7, 256)    33920       activation_3[0][0]               
__________________________________________________________________________________________________
batch_normalization_6 (BatchNor (None, 7, 7, 256)    1024        separable_conv2d_2[0][0]         
__________________________________________________________________________________________________
activation_4 (Activation)       (None, 7, 7, 256)    0           batch_normalization_6[0][0]      
__________________________________________________________________________________________________
separable_conv2d_3 (SeparableCo (None, 7, 7, 256)    67840       activation_4[0][0]               
__________________________________________________________________________________________________
batch_normalization_7 (BatchNor (None, 7, 7, 256)    1024        separable_conv2d_3[0][0]         
__________________________________________________________________________________________________
conv2d_4 (Conv2D)               (None, 4, 4, 256)    32768       add[0][0]                        
__________________________________________________________________________________________________
max_pooling2d_1 (MaxPooling2D)  (None, 4, 4, 256)    0           batch_normalization_7[0][0]      
__________________________________________________________________________________________________
batch_normalization_5 (BatchNor (None, 4, 4, 256)    1024        conv2d_4[0][0]                   
__________________________________________________________________________________________________
add_1 (Add)                     (None, 4, 4, 256)    0           max_pooling2d_1[0][0]            
                                                                 batch_normalization_5[0][0]      
__________________________________________________________________________________________________
activation_5 (Activation)       (None, 4, 4, 256)    0           add_1[0][0]                      
__________________________________________________________________________________________________
separable_conv2d_4 (SeparableCo (None, 4, 4, 768)    198912      activation_5[0][0]               
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None, 4, 4, 768)    3072        separable_conv2d_4[0][0]         
__________________________________________________________________________________________________
activation_6 (Activation)       (None, 4, 4, 768)    0           batch_normalization_9[0][0]      
__________________________________________________________________________________________________
separable_conv2d_5 (SeparableCo (None, 4, 4, 768)    596736      activation_6[0][0]               
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 4, 4, 768)    3072        separable_conv2d_5[0][0]         
__________________________________________________________________________________________________
conv2d_5 (Conv2D)               (None, 2, 2, 768)    196608      add_1[0][0]                      
__________________________________________________________________________________________________
max_pooling2d_2 (MaxPooling2D)  (None, 2, 2, 768)    0           batch_normalization_10[0][0]     
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None, 2, 2, 768)    3072        conv2d_5[0][0]                   
__________________________________________________________________________________________________
add_2 (Add)                     (None, 2, 2, 768)    0           max_pooling2d_2[0][0]            
                                                                 batch_normalization_8[0][0]      
__________________________________________________________________________________________________
activation_7 (Activation)       (None, 2, 2, 768)    0           add_2[0][0]                      
__________________________________________________________________________________________________
separable_conv2d_6 (SeparableCo (None, 2, 2, 768)    596736      activation_7[0][0]               
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_6[0][0]         
__________________________________________________________________________________________________
activation_8 (Activation)       (None, 2, 2, 768)    0           batch_normalization_11[0][0]     
__________________________________________________________________________________________________
separable_conv2d_7 (SeparableCo (None, 2, 2, 768)    596736      activation_8[0][0]               
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_7[0][0]         
__________________________________________________________________________________________________
activation_9 (Activation)       (None, 2, 2, 768)    0           batch_normalization_12[0][0]     
__________________________________________________________________________________________________
separable_conv2d_8 (SeparableCo (None, 2, 2, 768)    596736      activation_9[0][0]               
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_8[0][0]         
__________________________________________________________________________________________________
add_3 (Add)                     (None, 2, 2, 768)    0           batch_normalization_13[0][0]     
                                                                 add_2[0][0]                      
__________________________________________________________________________________________________
activation_10 (Activation)      (None, 2, 2, 768)    0           add_3[0][0]                      
__________________________________________________________________________________________________
separable_conv2d_9 (SeparableCo (None, 2, 2, 768)    596736      activation_10[0][0]              
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_9[0][0]         
__________________________________________________________________________________________________
activation_11 (Activation)      (None, 2, 2, 768)    0           batch_normalization_14[0][0]     
__________________________________________________________________________________________________
separable_conv2d_10 (SeparableC (None, 2, 2, 768)    596736      activation_11[0][0]              
__________________________________________________________________________________________________
batch_normalization_15 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_10[0][0]        
__________________________________________________________________________________________________
activation_12 (Activation)      (None, 2, 2, 768)    0           batch_normalization_15[0][0]     
__________________________________________________________________________________________________
separable_conv2d_11 (SeparableC (None, 2, 2, 768)    596736      activation_12[0][0]              
__________________________________________________________________________________________________
batch_normalization_16 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_11[0][0]        
__________________________________________________________________________________________________
add_4 (Add)                     (None, 2, 2, 768)    0           batch_normalization_16[0][0]     
                                                                 add_3[0][0]                      
__________________________________________________________________________________________________
activation_13 (Activation)      (None, 2, 2, 768)    0           add_4[0][0]                      
__________________________________________________________________________________________________
separable_conv2d_12 (SeparableC (None, 2, 2, 768)    596736      activation_13[0][0]              
__________________________________________________________________________________________________
batch_normalization_17 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_12[0][0]        
__________________________________________________________________________________________________
activation_14 (Activation)      (None, 2, 2, 768)    0           batch_normalization_17[0][0]     
__________________________________________________________________________________________________
separable_conv2d_13 (SeparableC (None, 2, 2, 768)    596736      activation_14[0][0]              
__________________________________________________________________________________________________
batch_normalization_18 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_13[0][0]        
__________________________________________________________________________________________________
activation_15 (Activation)      (None, 2, 2, 768)    0           batch_normalization_18[0][0]     
__________________________________________________________________________________________________
separable_conv2d_14 (SeparableC (None, 2, 2, 768)    596736      activation_15[0][0]              
__________________________________________________________________________________________________
batch_normalization_19 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_14[0][0]        
__________________________________________________________________________________________________
add_5 (Add)                     (None, 2, 2, 768)    0           batch_normalization_19[0][0]     
                                                                 add_4[0][0]                      
__________________________________________________________________________________________________
activation_16 (Activation)      (None, 2, 2, 768)    0           add_5[0][0]                      
__________________________________________________________________________________________________
separable_conv2d_15 (SeparableC (None, 2, 2, 768)    596736      activation_16[0][0]              
__________________________________________________________________________________________________
batch_normalization_20 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_15[0][0]        
__________________________________________________________________________________________________
activation_17 (Activation)      (None, 2, 2, 768)    0           batch_normalization_20[0][0]     
__________________________________________________________________________________________________
separable_conv2d_16 (SeparableC (None, 2, 2, 768)    596736      activation_17[0][0]              
__________________________________________________________________________________________________
batch_normalization_21 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_16[0][0]        
__________________________________________________________________________________________________
activation_18 (Activation)      (None, 2, 2, 768)    0           batch_normalization_21[0][0]     
__________________________________________________________________________________________________
separable_conv2d_17 (SeparableC (None, 2, 2, 768)    596736      activation_18[0][0]              
__________________________________________________________________________________________________
batch_normalization_22 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_17[0][0]        
__________________________________________________________________________________________________
add_6 (Add)                     (None, 2, 2, 768)    0           batch_normalization_22[0][0]     
                                                                 add_5[0][0]                      
__________________________________________________________________________________________________
activation_19 (Activation)      (None, 2, 2, 768)    0           add_6[0][0]                      
__________________________________________________________________________________________________
separable_conv2d_18 (SeparableC (None, 2, 2, 768)    596736      activation_19[0][0]              
__________________________________________________________________________________________________
batch_normalization_23 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_18[0][0]        
__________________________________________________________________________________________________
activation_20 (Activation)      (None, 2, 2, 768)    0           batch_normalization_23[0][0]     
__________________________________________________________________________________________________
separable_conv2d_19 (SeparableC (None, 2, 2, 768)    596736      activation_20[0][0]              
__________________________________________________________________________________________________
batch_normalization_24 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_19[0][0]        
__________________________________________________________________________________________________
activation_21 (Activation)      (None, 2, 2, 768)    0           batch_normalization_24[0][0]     
__________________________________________________________________________________________________
separable_conv2d_20 (SeparableC (None, 2, 2, 768)    596736      activation_21[0][0]              
__________________________________________________________________________________________________
batch_normalization_25 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_20[0][0]        
__________________________________________________________________________________________________
add_7 (Add)                     (None, 2, 2, 768)    0           batch_normalization_25[0][0]     
                                                                 add_6[0][0]                      
__________________________________________________________________________________________________
activation_22 (Activation)      (None, 2, 2, 768)    0           add_7[0][0]                      
__________________________________________________________________________________________________
separable_conv2d_21 (SeparableC (None, 2, 2, 768)    596736      activation_22[0][0]              
__________________________________________________________________________________________________
batch_normalization_26 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_21[0][0]        
__________________________________________________________________________________________________
activation_23 (Activation)      (None, 2, 2, 768)    0           batch_normalization_26[0][0]     
__________________________________________________________________________________________________
separable_conv2d_22 (SeparableC (None, 2, 2, 768)    596736      activation_23[0][0]              
__________________________________________________________________________________________________
batch_normalization_27 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_22[0][0]        
__________________________________________________________________________________________________
activation_24 (Activation)      (None, 2, 2, 768)    0           batch_normalization_27[0][0]     
__________________________________________________________________________________________________
separable_conv2d_23 (SeparableC (None, 2, 2, 768)    596736      activation_24[0][0]              
__________________________________________________________________________________________________
batch_normalization_28 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_23[0][0]        
__________________________________________________________________________________________________
add_8 (Add)                     (None, 2, 2, 768)    0           batch_normalization_28[0][0]     
                                                                 add_7[0][0]                      
__________________________________________________________________________________________________
activation_25 (Activation)      (None, 2, 2, 768)    0           add_8[0][0]                      
__________________________________________________________________________________________________
separable_conv2d_24 (SeparableC (None, 2, 2, 768)    596736      activation_25[0][0]              
__________________________________________________________________________________________________
batch_normalization_29 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_24[0][0]        
__________________________________________________________________________________________________
activation_26 (Activation)      (None, 2, 2, 768)    0           batch_normalization_29[0][0]     
__________________________________________________________________________________________________
separable_conv2d_25 (SeparableC (None, 2, 2, 768)    596736      activation_26[0][0]              
__________________________________________________________________________________________________
batch_normalization_30 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_25[0][0]        
__________________________________________________________________________________________________
activation_27 (Activation)      (None, 2, 2, 768)    0           batch_normalization_30[0][0]     
__________________________________________________________________________________________________
separable_conv2d_26 (SeparableC (None, 2, 2, 768)    596736      activation_27[0][0]              
__________________________________________________________________________________________________
batch_normalization_31 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_26[0][0]        
__________________________________________________________________________________________________
add_9 (Add)                     (None, 2, 2, 768)    0           batch_normalization_31[0][0]     
                                                                 add_8[0][0]                      
__________________________________________________________________________________________________
activation_28 (Activation)      (None, 2, 2, 768)    0           add_9[0][0]                      
__________________________________________________________________________________________________
separable_conv2d_27 (SeparableC (None, 2, 2, 768)    596736      activation_28[0][0]              
__________________________________________________________________________________________________
batch_normalization_32 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_27[0][0]        
__________________________________________________________________________________________________
activation_29 (Activation)      (None, 2, 2, 768)    0           batch_normalization_32[0][0]     
__________________________________________________________________________________________________
separable_conv2d_28 (SeparableC (None, 2, 2, 768)    596736      activation_29[0][0]              
__________________________________________________________________________________________________
batch_normalization_33 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_28[0][0]        
__________________________________________________________________________________________________
activation_30 (Activation)      (None, 2, 2, 768)    0           batch_normalization_33[0][0]     
__________________________________________________________________________________________________
separable_conv2d_29 (SeparableC (None, 2, 2, 768)    596736      activation_30[0][0]              
__________________________________________________________________________________________________
batch_normalization_34 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_29[0][0]        
__________________________________________________________________________________________________
add_10 (Add)                    (None, 2, 2, 768)    0           batch_normalization_34[0][0]     
                                                                 add_9[0][0]                      
__________________________________________________________________________________________________
activation_31 (Activation)      (None, 2, 2, 768)    0           add_10[0][0]                     
__________________________________________________________________________________________________
separable_conv2d_30 (SeparableC (None, 2, 2, 768)    596736      activation_31[0][0]              
__________________________________________________________________________________________________
batch_normalization_36 (BatchNo (None, 2, 2, 768)    3072        separable_conv2d_30[0][0]        
__________________________________________________________________________________________________
activation_32 (Activation)      (None, 2, 2, 768)    0           batch_normalization_36[0][0]     
__________________________________________________________________________________________________
block13_sepconv2 (SeparableConv (None, 2, 2, 1024)   793344      activation_32[0][0]              
__________________________________________________________________________________________________
batch_normalization_37 (BatchNo (None, 2, 2, 1024)   4096        block13_sepconv2[0][0]           
__________________________________________________________________________________________________
conv2d_6 (Conv2D)               (None, 1, 1, 1024)   786432      add_10[0][0]                     
__________________________________________________________________________________________________
max_pooling2d_3 (MaxPooling2D)  (None, 1, 1, 1024)   0           batch_normalization_37[0][0]     
__________________________________________________________________________________________________
batch_normalization_35 (BatchNo (None, 1, 1, 1024)   4096        conv2d_6[0][0]                   
__________________________________________________________________________________________________
add_11 (Add)                    (None, 1, 1, 1024)   0           max_pooling2d_3[0][0]            
                                                                 batch_normalization_35[0][0]     
__________________________________________________________________________________________________
separable_conv2d_31 (SeparableC (None, 1, 1, 1536)   1582080     add_11[0][0]                     
__________________________________________________________________________________________________
batch_normalization_38 (BatchNo (None, 1, 1, 1536)   6144        separable_conv2d_31[0][0]        
__________________________________________________________________________________________________
activation_33 (Activation)      (None, 1, 1, 1536)   0           batch_normalization_38[0][0]     
__________________________________________________________________________________________________
separable_conv2d_32 (SeparableC (None, 1, 1, 2048)   3159552     activation_33[0][0]              
__________________________________________________________________________________________________
batch_normalization_39 (BatchNo (None, 1, 1, 2048)   8192        separable_conv2d_32[0][0]        
__________________________________________________________________________________________________
activation_34 (Activation)      (None, 1, 1, 2048)   0           batch_normalization_39[0][0]     
__________________________________________________________________________________________________
global_average_pooling2d (Globa (None, 2048)         0           activation_34[0][0]              
__________________________________________________________________________________________________
dense (Dense)                   (None, 10)           20490       global_average_pooling2d[0][0]   
==================================================================================================
Total params: 22,554,416
Trainable params: 22,497,648
Non-trainable params: 56,768
__________________________________________________________________________________________________

png