title: Tensorflow model validation accuracy not increasing
body: <p>I have built a tensorflow model and am getting no change in my validation accuracy in different epochs, which makes me believe there is something wrong in my setup. Below is my code.</p>
  <pre><code>from keras.models import Sequential
  from keras.layers import Conv2D, MaxPooling2D
  from keras.layers import Activation, Dropout, Flatten, Dense
  from keras.preprocessing.image import ImageDataGenerator
  from tensorflow.keras import regularizers
  import tensorflow as tf
  
  model = Sequential()
  model.add(Conv2D(16, (3, 3), input_shape=(299, 299,3),padding='same'))
  model.add(Activation('relu'))
  model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
  
  model.add(Conv2D(32, (3, 3),padding='same'))
  model.add(Activation('relu'))
  model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
  
  model.add(Conv2D(64, (3, 3),padding='same'))
  model.add(Activation('relu'))
  model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
  
  model.add(Conv2D(64, (3, 3),padding='same'))
  model.add(Activation('relu'))
  model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
  
  # this converts our 3D feature maps to 1D feature vectors
  model.add(Flatten())  
  
  model.add(Dense(512))
  model.add(Activation('relu'))
  
  model.add(Dropout(0.5))
  
  model.add(Dense(1))
  model.add(Activation('sigmoid'))
  
  model.compile(loss='binary_crossentropy',
                optimizer='rmsprop',
                metrics=['accuracy'])
  
  batch_size=32
  
  # this is the augmentation configuration we will use for training
  train_datagen = ImageDataGenerator(
          rescale=1./255,
          # shear_range=0.2,
          # zoom_range=0.2,
          horizontal_flip=True)
  
  # this is the augmentation configuration we will use for testing:
  # only rescaling
  test_datagen = ImageDataGenerator(rescale=1./255)
  
  # this is a generator that will read pictures found in
  # subfolers of 'data/train', and indefinitely generate
  # batches of augmented image data
  train_generator = train_datagen.flow_from_directory(
          'Documents/Training',  # this is the target directory
           target_size=(299, 299),  #all images will be resized to 299
          batch_size=batch_size,
          class_mode='binary')  # since we use binary_crossentropy loss, we need binary labels
  
  # this is a similar generator, for validation data
  validation_generator = test_datagen.flow_from_directory(
          'Documents/Dev',
          target_size=(299, 299),
          batch_size=batch_size,
          class_mode='binary')
  #w1 =  tf.Variable(tf.truncated_normal([784, 30], stddev=0.1))
  model.fit_generator(
          train_generator,
          steps_per_epoch=50 // batch_size,
          verbose = 1,
          epochs=10,
          validation_data=validation_generator,
          validation_steps=8 // batch_size)
  </code></pre>
  <p>Which when I run produces the following output. Anything I'm missing here as far as my architecture is concerned or data generation steps? I have referenced <a href="https://stackoverflow.com/questions/51828971/tensorflow-model-accuracy-not-increasing">Tensorflow model accuracy not increasing</a> and <a href="https://stackoverflow.com/questions/48187607/accuracy-not-increasing-in-tensorflow-model">accuracy not increasing in tensorflow model</a> to no avail yet.</p>
  <pre><code>Epoch 1/10
  3/3 [==============================] - 2s 593ms/step - loss: 0.6719 - accuracy: 0.6250 - val_loss: 0.8198 - val_accuracy: 0.5000
  Epoch 2/10
  3/3 [==============================] - 2s 607ms/step - loss: 0.6521 - accuracy: 0.6667 - val_loss: 0.8518 - val_accuracy: 0.5000
  Epoch 3/10
  3/3 [==============================] - 2s 609ms/step - loss: 0.6752 - accuracy: 0.6250 - val_loss: 0.7129 - val_accuracy: 0.5000
  Epoch 4/10
  3/3 [==============================] - 2s 611ms/step - loss: 0.6841 - accuracy: 0.6250 - val_loss: 0.7010 - val_accuracy: 0.5000
  Epoch 5/10
  3/3 [==============================] - 2s 608ms/step - loss: 0.6977 - accuracy: 0.5417 - val_loss: 0.6551 - val_accuracy: 0.5000
  Epoch 6/10
  3/3 [==============================] - 2s 607ms/step - loss: 0.6508 - accuracy: 0.7083 - val_loss: 0.5752 - val_accuracy: 0.5000
  Epoch 7/10
  3/3 [==============================] - 2s 615ms/step - loss: 0.6596 - accuracy: 0.6875 - val_loss: 0.9326 - val_accuracy: 0.5000
  Epoch 8/10
  3/3 [==============================] - 2s 604ms/step - loss: 0.7022 - accuracy: 0.6458 - val_loss: 0.6976 - val_accuracy: 0.5000
  Epoch 9/10
  3/3 [==============================] - 2s 591ms/step - loss: 0.6331 - accuracy: 0.7292 - val_loss: 0.9571 - val_accuracy: 0.5000
  Epoch 10/10
  3/3 [==============================] - 2s 595ms/step - loss: 0.6085 - accuracy: 0.7292 - val_loss: 0.6029 - val_accuracy: 0.5000
  Out[24]: &lt;keras.callbacks.callbacks.History at 0x1ee4e3a8f08&gt;
  </code></pre>