philipperemy / keras-tcn

Keras Temporal Convolutional Network.
MIT License
1.87k stars 454 forks source link

Random Layer Names #200

Closed MBSMGW closed 3 years ago

MBSMGW commented 3 years ago

Describe the bug When using the tcn_full_summary() to output the model arrangement, all of the numberings are either out of order or random. If the numbers were all ascending maybe i wouldn't have batted an eyelid, but i just can not find anything to explain why the numbers are jumbled.

See for example below, the names of the activation layers, moving from input to output: activation_3 (Activation)3 activation (Activation)0 1 2 7 4 5 6 11 8 9 10 15 12 13 14 19 16 17 18 23 20 21 22 27 24 25 26 31 28 29 30 35 32 33 34

Paste a snippet

model=Sequential()
model = compiled_tcn(return_sequences=False,
                         num_feat=1,
                         num_classes=10,
                         nb_filters=20,
                         kernel_size=6,
                         dilations=[2 ** i for i in range(9)],
                         nb_stacks=1,
                         max_len=x_train[0:1].shape[1],
                         use_skip_connections=True)

tcn_full_summary(model, expand_residual_blocks=True)

Returns the following:

Model: "model"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         [(None, 784, 1)]          0         
_________________________________________________________________
matching_conv1D (Conv1D)     multiple                  40        
_________________________________________________________________
activation_3 (Activation)    multiple                  0         
_________________________________________________________________
conv1D_0 (Conv1D)            multiple                  140       
_________________________________________________________________
activation (Activation)      multiple                  0         
_________________________________________________________________
spatial_dropout1d (SpatialDr multiple                  0         
_________________________________________________________________
conv1D_1 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_1 (Activation)    multiple                  0         
_________________________________________________________________
spatial_dropout1d_1 (Spatial multiple                  0         
_________________________________________________________________
activation_2 (Activation)    multiple                  0         
_________________________________________________________________
matching_identity (Lambda)   (None, 784, 20)           0         
_________________________________________________________________
activation_7 (Activation)    multiple                  0         
_________________________________________________________________
conv1D_0 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_4 (Activation)    multiple                  0         
_________________________________________________________________
spatial_dropout1d_2 (Spatial multiple                  0         
_________________________________________________________________
conv1D_1 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_5 (Activation)    multiple                  0         
_________________________________________________________________
spatial_dropout1d_3 (Spatial multiple                  0         
_________________________________________________________________
activation_6 (Activation)    multiple                  0         
_________________________________________________________________
matching_identity (Lambda)   (None, 784, 20)           0         
_________________________________________________________________
activation_11 (Activation)   multiple                  0         
_________________________________________________________________
conv1D_0 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_8 (Activation)    multiple                  0         
_________________________________________________________________
spatial_dropout1d_4 (Spatial multiple                  0         
_________________________________________________________________
conv1D_1 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_9 (Activation)    multiple                  0         
_________________________________________________________________
spatial_dropout1d_5 (Spatial multiple                  0         
_________________________________________________________________
activation_10 (Activation)   multiple                  0         
_________________________________________________________________
matching_identity (Lambda)   (None, 784, 20)           0         
_________________________________________________________________
activation_15 (Activation)   multiple                  0         
_________________________________________________________________
conv1D_0 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_12 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_6 (Spatial multiple                  0         
_________________________________________________________________
conv1D_1 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_13 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_7 (Spatial multiple                  0         
_________________________________________________________________
activation_14 (Activation)   multiple                  0         
_________________________________________________________________
matching_identity (Lambda)   (None, 784, 20)           0         
_________________________________________________________________
activation_19 (Activation)   multiple                  0         
_________________________________________________________________
conv1D_0 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_16 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_8 (Spatial multiple                  0         
_________________________________________________________________
conv1D_1 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_17 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_9 (Spatial multiple                  0         
_________________________________________________________________
activation_18 (Activation)   multiple                  0         
_________________________________________________________________
matching_identity (Lambda)   (None, 784, 20)           0         
_________________________________________________________________
activation_23 (Activation)   multiple                  0         
_________________________________________________________________
conv1D_0 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_20 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_10 (Spatia multiple                  0         
_________________________________________________________________
conv1D_1 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_21 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_11 (Spatia multiple                  0         
_________________________________________________________________
activation_22 (Activation)   multiple                  0         
_________________________________________________________________
matching_identity (Lambda)   (None, 784, 20)           0         
_________________________________________________________________
activation_27 (Activation)   multiple                  0         
_________________________________________________________________
conv1D_0 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_24 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_12 (Spatia multiple                  0         
_________________________________________________________________
conv1D_1 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_25 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_13 (Spatia multiple                  0         
_________________________________________________________________
activation_26 (Activation)   multiple                  0         
_________________________________________________________________
matching_identity (Lambda)   (None, 784, 20)           0         
_________________________________________________________________
activation_31 (Activation)   multiple                  0         
_________________________________________________________________
conv1D_0 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_28 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_14 (Spatia multiple                  0         
_________________________________________________________________
conv1D_1 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_29 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_15 (Spatia multiple                  0         
_________________________________________________________________
activation_30 (Activation)   multiple                  0         
_________________________________________________________________
matching_identity (Lambda)   (None, 784, 20)           0         
_________________________________________________________________
activation_35 (Activation)   multiple                  0         
_________________________________________________________________
conv1D_0 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_32 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_16 (Spatia multiple                  0         
_________________________________________________________________
conv1D_1 (Conv1D)            multiple                  2420      
_________________________________________________________________
activation_33 (Activation)   multiple                  0         
_________________________________________________________________
spatial_dropout1d_17 (Spatia multiple                  0         
_________________________________________________________________
activation_34 (Activation)   multiple                  0         
_________________________________________________________________
lambda (Lambda)              multiple                  0         
_________________________________________________________________
dense (Dense)                (None, 10)                210       
_________________________________________________________________
activation (Activation)      (None, 10)                0         
=================================================================
Total params: 41,530
Trainable params: 41,530
Non-trainable params: 0

Dependencies Running in Jupyter, Python 3.8, Tensorflow 2.4.1, keras-tcn 3.4.0

MBSMGW commented 3 years ago

Well, i found a pattern in the numbers (The numbers, Mason.. What do they mean?!) from the first (layer 3), every 5th number is the value of what that spot +3+%4 should be so

0 3 1 0 2 1 3 2 4 7 5 4 6 5 7 6 8 11

Is it just the skip connections causing this?

philipperemy commented 3 years ago

@MBSMGW hey there is no logic in the naming. The number related to the activations is given by Keras and is a counter that is incremented every time an activation layer is defined. For the Conv Layers, we give them names based on where they are but nobody has ever checked in details.