Skip to content
Advertisement

Non-zero binary accuracy but 0 accuracy in Keras classifer

I’m trying to train an LSTM classifier in TensorFlow. Here is a reproducible example

targets = np.array([1, 0, 1, 1, 0, 0])
features = np.arange(6, 2, 1)

model = tf.keras.Sequential([
    tf.keras.layers.LSTM(64),
    tf.keras.layers.Dense(1, activation='sigmoid')
])

model.compile(
    loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
    optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
    metrics=(['BinaryAccuracy'])
)

history = (model.fit(
    features,
    targets,
    epochs=5,
    verbose = 1)
)

Using BinaryAccuracy:

Epoch 1/5 1/1 [==============================] - 1s 1s/step - loss: 0.6788 - binary_accuracy: 0.5000

Using Accuracy:

Epoch 1/5 1/1 [==============================] - 1s 1s/step - loss: 0.6794 - accuracy: 0.0000e+00

I have used the ‘Accuracy’ metric for binary classification before, can someone explain why this is happening?

Advertisement

Answer

The metric is ‘accuracy’, not ‘Accuracy’.

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement