title: Using softmax in Neural Networks to decide label of input
body: <p>I am using the keras model with the following layers to predict a label of input (out of 4 labels) </p>
  
  <pre><code>embedding_layer = keras.layers.Embedding(MAX_NB_WORDS, 
                                           EMBEDDING_DIM, 
                                           weights=[embedding_matrix], 
                                           input_length=MAX_SEQUENCE_LENGTH,
                                           trainable=False)
  
  sequence_input = keras.layers.Input(shape = (MAX_SEQUENCE_LENGTH,), 
                                      dtype = 'int32')
  
  embedded_sequences = embedding_layer(sequence_input)
  
  hidden_layer = keras.layers.Dense(50, activation='relu')(embedded_sequences)
  flat = keras.layers.Flatten()(hidden_layer)
  preds = keras.layers.Dense(4, activation='softmax')(flat)
  model = keras.models.Model(sequence_input, preds)
  model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['acc'])
  model.fit(X_train, Y_train, batch_size=32, epochs=100)
  </code></pre>
  
  <p>However, the softmax function returns a number of outputs of 4 (because I have 4 labels) </p>
  
  <p>When I'm using the predict function to get the predicted Y using the same model, I am getting an array of 4 for each X rather than one single label deciding the label for the input.</p>
  
  <pre><code>model.predict(X_test, batch_size = None, verbose = 0, steps = None)
  </code></pre>
  
  <p>How do I make the output layer of the keras model, or the model.predict function, decide on one single label, rather than output weights for each label?</p>