#tensorflow #machine-learning #keras #neural-network
#tensorflow #машинное обучение #keras #нейронная сеть
Вопрос:
Согласно этому потоку: https://datascience.stackexchange.com/questions/49109/loss-val-loss-are-decreasing-but-accuracies-are-the-same-in-lstm когда мы используем metrics='accuracy'
во время обучения нейронную сеть , то Keras
, что происходит под капотом , это:
if metric in ('accuracy', 'acc'):
metric_fn = metrics_module.binary_accuracy
где
def binary_accuracy(y_true, y_pred):
return K.mean(K.equal(y_true, K.round(y_pred)), axis=-1)
В моей модели я имею дело с непрерывными данными, для которых более применимо использование другой функции оценки. Возможно ли изменить эту предопределенную метрику на что-то специально созданное?
Ответ №1:
Я нашел ответ. Мы можем определить нашу метрику следующим образом:
def my_metric(y_true, y_pred):
...
а затем просто используйте его следующим образом:
model.compile(optimizer='...', loss='...', metrics=[my_metric])