Категориальная перекрестная энтропия не минимизирует потери? - PullRequest
0 голосов
/ 25 января 2020

Мне нужно кое-что о моей реализации CategoryCrossEntropy, которую я использовал в моей библиотеке глубокого обучения Toy. Проблема в том, что потеря продолжает расти и застряла в NaN.

class CategoricalCrossEntropy(Loss):

    def __init__(self, epsilon: float = 0.001) -> None:
        self.epsilon = epsilon

    def loss(self, target: Tensor, predicted: Tensor) -> Tensor:
        return -np.sum(target * np.log(predicted + self.epsilon))

    def grad(self, target: Tensor, predicted: Tensor) -> Tensor:
        # print("PREDICTED: ",predicted)
        # print("TARGET: ", target)
        y = -(target / (predicted + self.epsilon))
        # print("RETURN VALUE: ", y)
        return y

Вот ссылка на мой репозиторий, если вы хотите узнать подробности этой библиотеки. Пожалуйста помоги. https://github.com/joshiprashanthd/neural_network/tree/master/deep_learning_library

1 Ответ

0 голосов
/ 25 января 2020

Вы сделали ошибку, вычисляя градиенты, вы сбросили сумму, которая является ошибкой. Однако это не объясняет, почему ваша потеря увеличивается, у вас должна быть какая-то другая ошибка в оптимизаторе, или, может быть, когда вы печатаете эволюцию функции потери

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