Table 2 DPCNN model architecture.

From: Sign language recognition based on dual-path background erasure convolutional neural network

Layer (type)

Output shape

Param #

Connected to

input_1 (InputLayer)

[(None, 50, 50, 3)]

0

 

input2_c1 (Conv2D)

(None, 50, 50, 16)

448

input_1[0][0]

input1_c1 (Conv2D)

(None, 50, 50, 16)

448

input_1[0][0]

tf.math.negative (TFOpLambda)

(None, 50, 50, 16)

0

input2_c1[0][0]

add (Add)

(None, 50, 50, 16)

0

input1_c1[0][0]

tf.math.negative[0][0]

batch_normalization_1 (BatchNormalization)

(None, 50, 50, 16)

64

input2_c1[0][0]

batch_normalization(BatchNormalization)

(None, 50, 50, 16)

64

add[0][0]

max_pooling2d (MaxPooling2D)

(None, 25, 25, 16)

0

batch_normalization_1[0][0]

average_pooling2d (AveragePooling2D)

(None, 25, 25, 16)

0

batch_normalization[0][0]

input2_c2 (Conv2D)

(None, 25, 25, 32)

4640

max_pooling2d[0][0]

input1_c2 (Conv2D)

(None, 25, 25, 32)

4640

average_pooling2d[0][0]

tf.math.negative_1 (TFOpLambda)

(None, 25, 25, 32)

0

input2_c2[0][0]

add_1 (Add)

(None, 25, 25, 32)

0

input1_c2[0][0]

tf.math.negative_1[0][0]

batch_normalization_3(BatchNormalization)

(None, 25, 25, 32)

128

input2_c2[0][0]

batch_normalization_2(BatchNormalization)

(None, 25, 25, 32)

128

add_1[0][0]

max_pooling2d_1 (MaxPooling2D)

(None, 12, 12, 32)

0

batch_normalization_3[0][0]

average_pooling2d_1 (AveragePooling2D)

(None, 12, 12, 32)

0

batch_normalization_2[0][0]

input2_c3 (Conv2D)

(None, 12, 12, 32)

9248

max_pooling2d_1[0][0]

input1_c3 (Conv2D)

(None, 12, 12, 32)

9248

average_pooling2d_1[0][0]

tf.math.negative_2 (TFOpLambda)

(None, 12, 12, 32)

0

input2_c3[0][0]

add_2 (Add)

(None, 12, 12, 32)

0

input1_c3[0][0]

tf.math.negative_2[0][0]

batch_normalization_5(BatchNormalization)

(None, 12, 12, 32)

128

input2_c3[0][0]

batch_normalization_4 (BatchNormalization)

(None, 12, 12, 32)

128

add_2[0][0]

max_pooling2d_2 (MaxPooling2D)

(None, 6, 6, 32)

0

batch_normalization_5[0][0]

average_pooling2d_2 (AveragePooling2D)

(None, 6, 6, 32)

0

batch_normalization_4[0][0]

input2_c4 (Conv2D)

(None, 6, 6, 16)

4624

max_pooling2d_2[0][0]

input1_c4 (Conv2D)

(None, 6, 6, 16)

4624

average_pooling2d_2[0][0]

tf.math.negative_3 (TFOpLambda)

(None, 6, 6, 16)

0

input2_c4[0][0]

add_3 (Add)

(None, 6, 6, 16)

0

input1_c4[0][0]

tf.math.negative_3[0][0]

batch_normalization_6(BatchNormalization)

(None, 6, 6, 16)

64

add_3[0][0]

average_pooling2d_3 (AveragePooling2D)

(None, 3, 3, 16)

0

batch_normalization_6[0][0]

flatten (Flatten)

(None, 144)

0

average_pooling2d_3[0][0]

dense (Dense)

(None, 128)

18560

flatten[0][0]

alpha_dropout (AlphaDropout)

(None, 128)

0

dense[0][0]

dense_1 (Dense)

(None, 24)

3096

alpha_dropout[0][0]

Total params: 60,280

Trainable params: 59,928

Non-trainable params: 352