У меня есть объект набора данных 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 здесь.