Model.fit: Keras автоматически добавляет дополнительную ось в конце y_true - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть объект набора данных tf,

for i in dataset.take(1):
    print([x.shape for x in i])

# Output
# [TensorShape([20, 224, 224, 3]), TensorShape([20])]

Когда я тренируюсь, используя этот набор данных, используя

keras_model.fit(dataset, epochs=10)

, я получаю y_true с формой (20, 1), а не (20, ).

# What I expect: (6, )
[1, 1, 2, 2, 3, 3]

# What Keras gives: (6, 1)
[[1], [1], [2], [2], [3], [3]]

Почему Keras автоматически делает мои скалярные метки тензором с формой 1, что эквивалентно действию tf.expand(y_true, -1)?

У меня есть все мои метрики и функции потерь, принимающие ровно (20, ), а не расширенные, так есть ли способ заставить кера использовать как есть?

Playground здесь.

...