title: CNN is not learning appropriate, how to know if my dataset is adequate?
body: <p>I'm trying to implement CNN presented in this paper &quot;A Novel Machine Learning Aided Antenna Selection Scheme for MIMO Internet of Things&quot; which is found in <a href="https://www.mdpi.com/1424-8220/20/8/2250" rel="nofollow noreferrer">this article</a>.</p>
  <p>In my implementation, I follow all instructions therein, however, my binary-crossentropy loss function is not decreasing, i.e., it is constant over all epochs. I have been trying: change learning rate, normalize data set (min max, standard scale), change the number of epochs/batch_size, change the optimizer however nothing is making effect.</p>
  <p>Have anyone any suggestions?</p>
  <pre><code>matcont = hdf5storage.loadmat('train.mat') 
  # matcont = sio.loadmat('train')
  Input = (matcont['in'])
  Output = (matcont['out'])
  
  
  model = Sequential()
  model.add(Conv2D(16, (2, 2), padding=&quot;same&quot;,input_shape=(1,1,8)))
  model.add(Activation(&quot;relu&quot;))
  # model.add(Dropout(0.2))
  model.add(Conv2D(16, (2, 2), padding=&quot;same&quot;))
  model.add(Activation(&quot;relu&quot;))
  # model.add(Dropout(0.2))
  # model.add(Conv2D(16, (2, 2), padding=&quot;same&quot;))
  # model.add(Activation(&quot;relu&quot;))
  # model.add(Dropout(0.2))
  # model.add(Conv2D(16, (2, 2), padding=&quot;same&quot;))
  # model.add(Activation(&quot;relu&quot;))
  # model.add(Dropout(0.2))
  # model.add(Conv2D(16, (2, 2), padding=&quot;same&quot;))
  # model.add(Activation(&quot;relu&quot;))
  # model.add(Dropout(0.2))
  # model.add(Conv2D(16, (2, 2), padding=&quot;same&quot;))
  # model.add(Activation(&quot;relu&quot;))
  # model.add(Dropout(0.2))
  # model.add(Conv2D(16, (2, 2), padding=&quot;same&quot;))
  # model.add(Activation(&quot;relu&quot;))
  
  
  model.add(Flatten())
  model.add(Dense(256,activation='relu'))
  model.add(Dropout(0.2))
  model.add(Dense(8,activation='sigmoid'))
  
  model.summary()
  adam = optimizers.Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, decay=0.01)
  model.compile(adam,loss='binary_crossentropy',metrics = ['accuracy'])
  model.fit(Input,Output,epochs=100,validation_split=0.11,batch_size=100)
  </code></pre>
  <p><img src="https://i.stack.imgur.com/Zsdn6.png" alt="looping over epochs" /></p>