This is the German traffic sign classifier project for implementing CoreML. SqueezeNet is used as classifier and Keras2 framework used.
- https://github.com/DT42/squeezenet_demo
- https://github.com/rcmalli/keras-squeezenet
- https://arxiv.org/pdf/1602.07360.pdf
http://benchmark.ini.rub.de/?section=gtsrb&subsection=dataset#Downloads
- batch size : 256
- epochs : 1000 (Earlystopping callbacks)
- Data Generator :
train_datagen = ImageDataGenerator(
featurewise_center=True,
featurewise_std_normalization=True,
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=False)
- Train loss: 0.0492
- Train accuracy : 0.9866
- Test accuracy : 0.7552
____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
input_1 (InputLayer) (None, 32, 32, 3) 0
____________________________________________________________________________________________________
conv1 (Conv2D) (None, 16, 16, 96) 14208 input_1[0][0]
____________________________________________________________________________________________________
maxpool1 (MaxPooling2D) (None, 7, 7, 96) 0 conv1[0][0]
____________________________________________________________________________________________________
fire2/squeeze1x1 (Conv2D) (None, 7, 7, 16) 1552 maxpool1[0][0]
____________________________________________________________________________________________________
fire2/relu_squeeze1x1 (Activatio (None, 7, 7, 16) 0 fire2/squeeze1x1[0][0]
____________________________________________________________________________________________________
fire2/expand1x1 (Conv2D) (None, 7, 7, 64) 1088 fire2/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire2/expand3x3 (Conv2D) (None, 7, 7, 64) 9280 fire2/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire2/relu_expand1x1 (Activation (None, 7, 7, 64) 0 fire2/expand1x1[0][0]
____________________________________________________________________________________________________
fire2/relu_expand3x3 (Activation (None, 7, 7, 64) 0 fire2/expand3x3[0][0]
____________________________________________________________________________________________________
fire2/concat (Concatenate) (None, 7, 7, 128) 0 fire2/relu_expand1x1[0][0]
fire2/relu_expand3x3[0][0]
____________________________________________________________________________________________________
fire3/squeeze1x1 (Conv2D) (None, 7, 7, 16) 2064 fire2/concat[0][0]
____________________________________________________________________________________________________
fire3/relu_squeeze1x1 (Activatio (None, 7, 7, 16) 0 fire3/squeeze1x1[0][0]
____________________________________________________________________________________________________
fire3/expand1x1 (Conv2D) (None, 7, 7, 64) 1088 fire3/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire3/expand3x3 (Conv2D) (None, 7, 7, 64) 9280 fire3/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire3/relu_expand1x1 (Activation (None, 7, 7, 64) 0 fire3/expand1x1[0][0]
____________________________________________________________________________________________________
fire3/relu_expand3x3 (Activation (None, 7, 7, 64) 0 fire3/expand3x3[0][0]
____________________________________________________________________________________________________
fire3/concat (Concatenate) (None, 7, 7, 128) 0 fire3/relu_expand1x1[0][0]
fire3/relu_expand3x3[0][0]
____________________________________________________________________________________________________
fire4/squeeze1x1 (Conv2D) (None, 7, 7, 32) 4128 fire3/concat[0][0]
____________________________________________________________________________________________________
fire4/relu_squeeze1x1 (Activatio (None, 7, 7, 32) 0 fire4/squeeze1x1[0][0]
____________________________________________________________________________________________________
fire4/expand1x1 (Conv2D) (None, 7, 7, 128) 4224 fire4/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire4/expand3x3 (Conv2D) (None, 7, 7, 128) 36992 fire4/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire4/relu_expand1x1 (Activation (None, 7, 7, 128) 0 fire4/expand1x1[0][0]
____________________________________________________________________________________________________
fire4/relu_expand3x3 (Activation (None, 7, 7, 128) 0 fire4/expand3x3[0][0]
____________________________________________________________________________________________________
fire4/concat (Concatenate) (None, 7, 7, 256) 0 fire4/relu_expand1x1[0][0]
fire4/relu_expand3x3[0][0]
____________________________________________________________________________________________________
maxpool2 (MaxPooling2D) (None, 3, 3, 256) 0 fire4/concat[0][0]
____________________________________________________________________________________________________
fire5/squeeze1x1 (Conv2D) (None, 3, 3, 32) 8224 maxpool2[0][0]
____________________________________________________________________________________________________
fire5/relu_squeeze1x1 (Activatio (None, 3, 3, 32) 0 fire5/squeeze1x1[0][0]
____________________________________________________________________________________________________
fire5/expand1x1 (Conv2D) (None, 3, 3, 128) 4224 fire5/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire5/expand3x3 (Conv2D) (None, 3, 3, 128) 36992 fire5/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire5/relu_expand1x1 (Activation (None, 3, 3, 128) 0 fire5/expand1x1[0][0]
____________________________________________________________________________________________________
fire5/relu_expand3x3 (Activation (None, 3, 3, 128) 0 fire5/expand3x3[0][0]
____________________________________________________________________________________________________
fire5/concat (Concatenate) (None, 3, 3, 256) 0 fire5/relu_expand1x1[0][0]
fire5/relu_expand3x3[0][0]
____________________________________________________________________________________________________
fire6/squeeze1x1 (Conv2D) (None, 3, 3, 48) 12336 fire5/concat[0][0]
____________________________________________________________________________________________________
fire6/relu_squeeze1x1 (Activatio (None, 3, 3, 48) 0 fire6/squeeze1x1[0][0]
____________________________________________________________________________________________________
fire6/expand1x1 (Conv2D) (None, 3, 3, 192) 9408 fire6/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire6/expand3x3 (Conv2D) (None, 3, 3, 192) 83136 fire6/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire6/relu_expand1x1 (Activation (None, 3, 3, 192) 0 fire6/expand1x1[0][0]
____________________________________________________________________________________________________
fire6/relu_expand3x3 (Activation (None, 3, 3, 192) 0 fire6/expand3x3[0][0]
____________________________________________________________________________________________________
fire6/concat (Concatenate) (None, 3, 3, 384) 0 fire6/relu_expand1x1[0][0]
fire6/relu_expand3x3[0][0]
____________________________________________________________________________________________________
fire7/squeeze1x1 (Conv2D) (None, 3, 3, 48) 18480 fire6/concat[0][0]
____________________________________________________________________________________________________
fire7/relu_squeeze1x1 (Activatio (None, 3, 3, 48) 0 fire7/squeeze1x1[0][0]
____________________________________________________________________________________________________
fire7/expand1x1 (Conv2D) (None, 3, 3, 192) 9408 fire7/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire7/expand3x3 (Conv2D) (None, 3, 3, 192) 83136 fire7/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire7/relu_expand1x1 (Activation (None, 3, 3, 192) 0 fire7/expand1x1[0][0]
____________________________________________________________________________________________________
fire7/relu_expand3x3 (Activation (None, 3, 3, 192) 0 fire7/expand3x3[0][0]
____________________________________________________________________________________________________
fire7/concat (Concatenate) (None, 3, 3, 384) 0 fire7/relu_expand1x1[0][0]
fire7/relu_expand3x3[0][0]
____________________________________________________________________________________________________
fire8/squeeze1x1 (Conv2D) (None, 3, 3, 64) 24640 fire7/concat[0][0]
____________________________________________________________________________________________________
fire8/relu_squeeze1x1 (Activatio (None, 3, 3, 64) 0 fire8/squeeze1x1[0][0]
____________________________________________________________________________________________________
fire8/expand1x1 (Conv2D) (None, 3, 3, 256) 16640 fire8/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire8/expand3x3 (Conv2D) (None, 3, 3, 256) 147712 fire8/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire8/relu_expand1x1 (Activation (None, 3, 3, 256) 0 fire8/expand1x1[0][0]
____________________________________________________________________________________________________
fire8/relu_expand3x3 (Activation (None, 3, 3, 256) 0 fire8/expand3x3[0][0]
____________________________________________________________________________________________________
fire8/concat (Concatenate) (None, 3, 3, 512) 0 fire8/relu_expand1x1[0][0]
fire8/relu_expand3x3[0][0]
____________________________________________________________________________________________________
maxpool3 (MaxPooling2D) (None, 1, 1, 512) 0 fire8/concat[0][0]
____________________________________________________________________________________________________
fire9/squeeze1x1 (Conv2D) (None, 1, 1, 64) 32832 maxpool3[0][0]
____________________________________________________________________________________________________
fire9/relu_squeeze1x1 (Activatio (None, 1, 1, 64) 0 fire9/squeeze1x1[0][0]
____________________________________________________________________________________________________
fire9/expand1x1 (Conv2D) (None, 1, 1, 256) 16640 fire9/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire9/expand3x3 (Conv2D) (None, 1, 1, 256) 147712 fire9/relu_squeeze1x1[0][0]
____________________________________________________________________________________________________
fire9/relu_expand1x1 (Activation (None, 1, 1, 256) 0 fire9/expand1x1[0][0]
____________________________________________________________________________________________________
fire9/relu_expand3x3 (Activation (None, 1, 1, 256) 0 fire9/expand3x3[0][0]
____________________________________________________________________________________________________
fire9/concat (Concatenate) (None, 1, 1, 512) 0 fire9/relu_expand1x1[0][0]
fire9/relu_expand3x3[0][0]
____________________________________________________________________________________________________
drop9 (Dropout) (None, 1, 1, 512) 0 fire9/concat[0][0]
____________________________________________________________________________________________________
conv10 (Conv2D) (None, 1, 1, 43) 22059 drop9[0][0]
____________________________________________________________________________________________________
avgpool10 (GlobalAveragePooling2 (None, 43) 0 conv10[0][0]
____________________________________________________________________________________________________
softmax (Activation) (None, 43) 0 avgpool10[0][0]
====================================================================================================
Total params: 757,483
Trainable params: 757,483
Non-trainable params: 0
____________________________________________________________________________________________________