Я пытаюсь запустить пользовательскую метрику в Керасе. Мне это удалось, но я не доверяю его результатам, поэтому я хотел бы проверить некоторые ценности. Проблема в том, что все в тензорах, и я хотел бы преобразовать их в ndarrays для их проверки. Чтобы преобразовать их, я должен провести сессию для их оценки. Когда я пытаюсь получить сеанс с помощью бэкенда Keras, я получаю сообщение об ошибке:
InvalidArgumentError (см. Выше для отслеживания): вы должны передать значение для тензора заполнителя 'Dense_1_target_1' с dtype float и shape [?,?]
[[Узел: Dense_1_target_1 = Placeholderdtype = DT_FLOAT, shape = [?,?], _Device = "/ job: localhost / replica: 0 / task: 0 / device: GPU: 0"]]
Единственное, что мне нужно, - это возможность распечатать некоторую информацию о тензорах: значения, формы и т. Д.
from keras import backend as K
def t_zeros(Y_true, y_pred):
""" Just count # zero's in Y_true and try to print some info """
threshold = 0.5
true_zeros = K.less(Y_true, threshold) # element-wise True where Y_true < theshold
true_zeros = K.cast(true_zeros, K.floatx()) # cast to 0.0 / 1.0
n_zeros = K.sum(true_zeros)
sess = K.get_session()
y_t = Y_true.eval(session=sess) # <== error happens here
print(y_t.shape)
return n_zeros