3

I built the model to classification using 1D convolution layers using tf.Keras .this works well if I remove the tensorboard.As I'm a beginner,I can't figure it out what the problem is. Please help

%reload_ext tensorboard
import tensorflow as tf

from tensorflow.keras.layers import Dense, Activation,Conv1D,MaxPool1D,GlobalAveragePooling1D,Dropout,Flatten,concatenate,Input
from tensorflow.keras.models import Model

inp = Input(shape=(1000,21))
a = Conv1D(filters=250,padding='valid', kernel_size=(8),strides=1)(inp)
a=MaxPool1D(1000-8+1,strides=1,padding='valid')(a)
a=Flatten()(a)
b = Conv1D(filters=250,padding='valid', kernel_size=(12))(inp)
b=MaxPool1D(1000-12+1,strides=1,padding='valid')(b)
b=Flatten()(b)
c = Conv1D(filters=250,padding='valid', kernel_size=(16))(inp)
c=MaxPool1D(1000-16+1,strides=1,padding='valid')(c)
c=Flatten()(c)
d = Conv1D(filters=250,padding='valid', kernel_size=(20))(inp)
d=MaxPool1D(1000-20+1,strides=1,padding='valid')(d)
d=Flatten()(d)
e = Conv1D(filters=250,padding='valid', kernel_size=(24))(inp)
e=MaxPool1D(1000-24+1,strides=1,padding='valid')(e)
e=Flatten()(e)
f = Conv1D(filters=250,padding='valid', kernel_size=(28))(inp)
f=MaxPool1D(1000-28+1,strides=1,padding='valid')(f)
f=Flatten()(f)
g = Conv1D(filters=250,padding='valid', kernel_size=(32))(inp)
g=MaxPool1D(1000-32+1,strides=1,padding='valid')(g)
g=Flatten()(g)
h= Conv1D(filters=250,padding='valid', kernel_size=(36))(inp)
h=MaxPool1D(1000-36+1,strides=1,padding='valid')(h)
h=Flatten()(h)
model=concatenate([a,b,c,d,e,f,g,h],1)
model = Dropout(0.3)(model)
#model = Dense(2000,activation='relu')(model)
model = Dense(2892,activation='sigmoid')(model)
model = Model(inp, model)
print(model.summary())

and use the sequence class batch generator to input batches

class MyGenerator(tf.keras.utils.Sequence):
    'Generates data for Keras'
    def __init__(self, ids, train_dir):
        'Initialization'
        self.ids = ids
        self.train_dir = train_dir


    def __len__(self):
        'Denotes the number of batches per epoch'
        batch_size=100
        numofBatchs=math.ceil(len(self.train_dir) / batch_size)
        return numofBatchs

    def __getitem__(self, index):

      test_resL=[]
      test_resD=[]
      start_posT = index * 100
      end_posT = min(start_posT + 100, len(self.train_dir))
      test_resL=self.ids[start_posT:end_posT]
      test_resD=self.train_dir[start_posT:end_posT]
      #iTest += 1

      isize=len(test_resL)


      dataTest = np.zeros( (isize,1000,21), dtype=np.float32 )
      labelsTest = np.zeros( (isize,2892), dtype=np.uint8 )    
      #rawTest = []

      for i , idy in enumerate(test_resL):
          label=idy
          #print(label)        
          encoding_label_np(label, labelsTest[i] )
      for i , idx in enumerate(test_resD):
          seq=idx        
          encoding_seq_np(seq, dataTest[i] )
      #dataShped=np.reshape(dataTest,(-1, 1, 1000, 21))
      # print(dataTest[0:2])
      # print(labelsTest[0:2])                
      return dataTest,labelsTest

after adding tensor board it runs 1st epoch only.

poch 1/20
10431/10431 [==============================] - ETA: 0s - loss: 2.7652 - accuracy: 0.3496
---------------------------------------------------------------------------
_FallbackException                        Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/gen_summary_ops.py in write_histogram_summary(writer, step, tag, values, name)
    463         _ctx._context_handle, tld.device_name, "WriteHistogramSummary", name,
--> 464         tld.op_callbacks, writer, step, tag, values)
    465       return _result

_FallbackException: This function does not handle the case of the path where all inputs are not already EagerTensors.

During handling of the above exception, another exception occurred:

InvalidArgumentError                      Traceback (most recent call last)
13 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
     58     ctx.ensure_initialized()
     59     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
---> 60                                         inputs, attrs, num_outputs)
     61   except core._NotOkStatusException as e:
     62     if name is not None:

InvalidArgumentError: Nan in summary histogram for: conv1d_16/kernel_0 [Op:WriteHistogramSummary]

1 Answers1

2

Providing the solution here (Answer Section), even though it is present in the comment section for the benefit of the community.

InvalidArgumentError: Nan in summary histogram for: conv1d_16/kernel_0 [Op:WriteHistogramSummary]

This issue was resolved after modifying activation function from sigmoid to softmax in the dense layer of Model.

Final Model Structure is as below

import tensorflow as tf

from tensorflow.keras.layers import Dense, Activation,Conv1D,MaxPool1D,GlobalAveragePooling1D,Dropout,Flatten,concatenate,Input
from tensorflow.keras.models import Model

inp = Input(shape=(1000,21))
a = Conv1D(filters=250,padding='valid', kernel_size=(8),strides=1)(inp)
a=MaxPool1D(1000-8+1,strides=1,padding='valid')(a)
a=Flatten()(a)
b = Conv1D(filters=250,padding='valid', kernel_size=(12))(inp)
b=MaxPool1D(1000-12+1,strides=1,padding='valid')(b)
b=Flatten()(b)
c = Conv1D(filters=250,padding='valid', kernel_size=(16))(inp)
c=MaxPool1D(1000-16+1,strides=1,padding='valid')(c)
c=Flatten()(c)
d = Conv1D(filters=250,padding='valid', kernel_size=(20))(inp)
d=MaxPool1D(1000-20+1,strides=1,padding='valid')(d)
d=Flatten()(d)
e = Conv1D(filters=250,padding='valid', kernel_size=(24))(inp)
e=MaxPool1D(1000-24+1,strides=1,padding='valid')(e)
e=Flatten()(e)
f = Conv1D(filters=250,padding='valid', kernel_size=(28))(inp)
f=MaxPool1D(1000-28+1,strides=1,padding='valid')(f)
f=Flatten()(f)
g = Conv1D(filters=250,padding='valid', kernel_size=(32))(inp)
g=MaxPool1D(1000-32+1,strides=1,padding='valid')(g)
g=Flatten()(g)
h= Conv1D(filters=250,padding='valid', kernel_size=(36))(inp)
h=MaxPool1D(1000-36+1,strides=1,padding='valid')(h)
h=Flatten()(h)
model=concatenate([a,b,c,d,e,f,g,h],1)
model = Dropout(0.3)(model)
#model = Dense(2000,activation='relu')(model)
model = Dense(2892,activation='softmax')(model)
model = Model(inp, model)
print(model.summary())

Output:

Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 1000, 21)]   0                                            
__________________________________________________________________________________________________
conv1d (Conv1D)                 (None, 993, 250)     42250       input_1[0][0]                    
__________________________________________________________________________________________________
conv1d_1 (Conv1D)               (None, 989, 250)     63250       input_1[0][0]                    
__________________________________________________________________________________________________
conv1d_2 (Conv1D)               (None, 985, 250)     84250       input_1[0][0]                    
__________________________________________________________________________________________________
conv1d_3 (Conv1D)               (None, 981, 250)     105250      input_1[0][0]                    
__________________________________________________________________________________________________
conv1d_4 (Conv1D)               (None, 977, 250)     126250      input_1[0][0]                    
__________________________________________________________________________________________________
conv1d_5 (Conv1D)               (None, 973, 250)     147250      input_1[0][0]                    
__________________________________________________________________________________________________
conv1d_6 (Conv1D)               (None, 969, 250)     168250      input_1[0][0]                    
__________________________________________________________________________________________________
conv1d_7 (Conv1D)               (None, 965, 250)     189250      input_1[0][0]                    
__________________________________________________________________________________________________
max_pooling1d (MaxPooling1D)    (None, 1, 250)       0           conv1d[0][0]                     
__________________________________________________________________________________________________
max_pooling1d_1 (MaxPooling1D)  (None, 1, 250)       0           conv1d_1[0][0]                   
__________________________________________________________________________________________________
max_pooling1d_2 (MaxPooling1D)  (None, 1, 250)       0           conv1d_2[0][0]                   
__________________________________________________________________________________________________
max_pooling1d_3 (MaxPooling1D)  (None, 1, 250)       0           conv1d_3[0][0]                   
__________________________________________________________________________________________________
max_pooling1d_4 (MaxPooling1D)  (None, 1, 250)       0           conv1d_4[0][0]                   
__________________________________________________________________________________________________
max_pooling1d_5 (MaxPooling1D)  (None, 1, 250)       0           conv1d_5[0][0]                   
__________________________________________________________________________________________________
max_pooling1d_6 (MaxPooling1D)  (None, 1, 250)       0           conv1d_6[0][0]                   
__________________________________________________________________________________________________
max_pooling1d_7 (MaxPooling1D)  (None, 1, 250)       0           conv1d_7[0][0]                   
__________________________________________________________________________________________________
flatten (Flatten)               (None, 250)          0           max_pooling1d[0][0]              
__________________________________________________________________________________________________
flatten_1 (Flatten)             (None, 250)          0           max_pooling1d_1[0][0]            
__________________________________________________________________________________________________
flatten_2 (Flatten)             (None, 250)          0           max_pooling1d_2[0][0]            
__________________________________________________________________________________________________
flatten_3 (Flatten)             (None, 250)          0           max_pooling1d_3[0][0]            
__________________________________________________________________________________________________
flatten_4 (Flatten)             (None, 250)          0           max_pooling1d_4[0][0]            
__________________________________________________________________________________________________
flatten_5 (Flatten)             (None, 250)          0           max_pooling1d_5[0][0]            
__________________________________________________________________________________________________
flatten_6 (Flatten)             (None, 250)          0           max_pooling1d_6[0][0]            
__________________________________________________________________________________________________
flatten_7 (Flatten)             (None, 250)          0           max_pooling1d_7[0][0]            
__________________________________________________________________________________________________
concatenate (Concatenate)       (None, 2000)         0           flatten[0][0]                    
                                                                 flatten_1[0][0]                  
                                                                 flatten_2[0][0]                  
                                                                 flatten_3[0][0]                  
                                                                 flatten_4[0][0]                  
                                                                 flatten_5[0][0]                  
                                                                 flatten_6[0][0]                  
                                                                 flatten_7[0][0]                  
__________________________________________________________________________________________________
dropout (Dropout)               (None, 2000)         0           concatenate[0][0]                
__________________________________________________________________________________________________
dense (Dense)                   (None, 2892)         5786892     dropout[0][0]                    
==================================================================================================
Total params: 6,712,892
Trainable params: 6,712,892
Non-trainable params: 0
______________________________________