Пользовательская оценка модели для последовательностей в Tensorflow - PullRequest
0 голосов
/ 27 мая 2020

Фон

Я работаю над проектом прогнозирования последовательности и реализую его в Tensorflow v2.

Я копирую процедуру из этого документа . У меня есть последовательные данные X в форме (n_examples, seq_length, x_dim), и на каждом шаге я пытаюсь предсказать двоичный результат, так что мой результат y будет иметь форму (n_examples, seq_length, 1).

Моя проблема

Для обучения использую целевую репликацию; т.е. если истинный результат для последовательности равен 1, тогда моей целью будет t=[1]*seq_len.

Однако при оценке модели на тестовом наборе с помощью AU C, я хочу проверить, действительно ли любое прогнозов превышает заданный порог. Например, если seq_len=3, t=[1,1,1], threshold=0.2 и моя модель предсказывает y=[0.1,0.3,0.05], я хочу, чтобы это считалось правильным предсказанием.

Единственный способ, которым я могу сейчас придумать, реализовать это - использовать что-то подобное для каждого входа i и разных пороговых значений:

# Check if model predicts the correct label for input i
correct_pred = (any(model.predict(test_X[i,:,:]) > threshold) == any(test_y[i,:,:]))

Вопрос

Есть ли лучший способ сделать это? Было бы удобно просто использовать функцию model.evaluate с AU C в качестве показателей, но поскольку для оценки я просто хочу проверить, превышает ли любое моих прогнозов порог, я не могу просто использовать что-то вроде model.evaluate(test_X, test_y).

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...