Как отлаживать пользовательские значения метрик в tf.keras - PullRequest
0 голосов
/ 30 марта 2019

Я определил очень простую пользовательскую метрику в tf.keras для отслеживания количества пикселей, предсказанных как '1' для проблемы сегментации. Поскольку выходные данные с последнего слоя имеют сигмовидную активацию, я округляю y_pred и затем суммирую. Я ожидаю увидеть целое целое значение (> = 0) (из-за округления), но вывод показывает числа с плавающей запятой, такие как 0,28. Как это возможно? Как я могу отладить это, чтобы выяснить, где проблема?

Я попытался переключиться с tf.keras.backend.sum & tf.keras.backend.round на tf.reduce_sum & tf. раунд , но это не решило проблему

def num_ones(y_true, y_pred):
    return tf.keras.backend.sum(tf.keras.backend.flatten(tf.keras.backend.round(y_pred)))

model.compile(optimizer = tf.train.AdamOptimizer(learning_rate = 1e-4), loss = 'binary_crossentropy', metrics = ['accuracy', num_ones])


output-
INFO:tensorflow:Saving dict for global step 3408: accuracy = 0.9551756, global_step = 3408, loss = 0.7224839, num_ones = 0.28
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...