ИСТОРИЯ:
Я хочу получить равные len(x)
и x.shape[0]
для y_pred и y_true внутри пользовательской метрики Keras, не используя ничего, кромеБэкэнд Keras.
Рассмотрим пример минимальной метрики Keras:
from keras import backend as K
def binary_accuracy(y_true, y_pred):
return K.mean(K.equal(y_true, K.round(y_pred)), axis=-1)
Здесь y_pred и y_true - тензоры, которые представляют собой массивы с определенными фигурами.
ВОПРОС:
Как получить длину базового массива внутри метрической функции keras, чтобы результирующий код имел вид:
def binary_accuracy(y_true, y_pred):
# some Keras backend code
return K.mean(K.equal(y_true, K.round(y_pred)), axis=-1)
ПРИМЕЧАНИЕ:код должен быть кодом бэкэнда Keras, чтобы он работал на любом бэкенде Keras.
Я уже пробовал K.ndim(y_pred)
, который возвращает 2, хотя длина на самом деле 45, а K.int_shape(y_pred)
, который возвращает None.