Быстрая перекрестная энтропия в Numpy - PullRequest
0 голосов
/ 12 марта 2020

Я придумал две версии Cross-Entropy, одну в формате векторизованного точечного продукта, а другую - типичную, которую вы увидите в любой лекции по ML. Я пытаюсь ускорить свой алгоритм и, таким образом, использую любую возможность для его ускорения.

enter image description here

  cost = -(1.0/m) * np.sum(Y*np.log(A) + (1-Y)*np.log(1-A))

    Vectorized Version
  cost = -(1.0/m) * (np.dot(np.log(A), Y.T) + np.dot(np.log(1-A), (1-Y).T))

Мой вопрос: какой из вышеперечисленных Реализация кросс-энтропийной потери вычисляется быстрее всего, учитывая архитектуру библиотеки Numpy и другие ограничения.

1 Ответ

0 голосов
/ 12 марта 2020

Это поможет с бенчмаркингом узнать типичные значения меток. Если метки слишком короткие, чистая реализация python может быть на самом деле быстрее, чем использование NumPy

Возвращаясь к вашему вопросу, я бы сказал, что точечные продукты уже являются скалярами (единичными числами) np.sum. (который суммирует массив продуктов в другом стиле - см. ) в "стиле np dot" не нужен.

Надеюсь, это поможет.

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