Я запускаю модель генерации текста (RNN) на Tensorfow 2.0.0-alpha0, и хотя я получаю метрику потерь при подборе модели, я получаю следующую ошибку при вставке точности:
InvalidArgumentError: Incompatible shapes: [64] vs. [64,200]
[[{{node metrics_4/accuracy/Equal}}]] [Op:__inference_keras_scratch_graph_6491]
Я попытался вручную определить точность для одной партии (предварительная подготовка):
def loss(labels, logits):
return tf.keras.losses.sparse_categorical_crossentropy(labels, logits, from_logits=True)
def accuracy(labels, logits):
return tf.keras.metrics.sparse_categorical_accuracy(labels,l ogits)
example_batch_loss = loss(target_example_batch, example_batch_predictions)
example_batch_acc = accuracy(target_example_batch, example_batch_predictions)
print("Prediction shape: ", example_batch_predictions.shape, " # (batch_size, sequence_length, vocab_size)")
print("Loss: ", example_batch_loss.numpy().mean())
print("Accuracy: ", example_batch_acc.numpy().mean())
Результат был:
Prediction shape: (64, 200, 34) # (batch_size, sequence_length, vocab_size) Loss: 3.5263805 Accuracy: 0.01265625
Затем я последовал:
optimizer = tf.keras.optimizers.RMSprop(lr=lr)
model.compile(optimizer=optimizer, loss=loss, metrics =['accuracy'])
history = model.fit(dataset, epochs=epochs, callbacks[checkpoint_callback])
и получил указанную выше ошибку (потеря работает нормально). Если я попробую "точность = точность" при компиляции, я получу:
raise ValueError('Session keyword arguments are not support during eager execution. You passed: %s' % (kwargs,))
Любые мысли/предложения?






accuracy не является стандартным аргументом Model.fit - он будет принят под **kwargs, который затем будет передан session.run в графическом режиме. Попробуйте metrics=[accuracy].