В настоящее время у меня есть два тензора факелов, p
и x
, которые оба имеют форму (batch_size, input_size)
.
Я хотел бы рассчитать вероятность логарифма Бернулли для заданных данных и вернуть тензор размера (batch_size)
Вот пример того, что я хотел бы сделать: У меня есть формула для логарифмических вероятностей случайных величин Бернулли:
\sum_i^d x_{i} ln(p_i) + (1-x_i) ln (1-p_i)
Скажи, что у меня есть p
Тензор:
[[0.6 0.4 0], [0.33 0.34 0.33]]
И скажи, что у меня есть x
тензор для двоичных входных данных, основанный на этих вероятностях:
[[1 1 0], [0 1 1]]
И я хочу рассчитать логарифмическую вероятность для каждой выборки, что приведет к:
[[ln(0.6)+ln(0.4)], [ln(0.67)+ln(0.34)+ln(0.33)]]
Можно ли было бы выполнить это вычисление без использования циклов for?
Я знаю, что мог бы использовать torch.sum(axis=1)
чтобы выполнить окончательное суммирование между журналами, но возможно ли выполнить вычисление логарифмической вероятности Бернулли без использования циклов for? или используйте не более 1 для цикла? Я пытаюсь максимально векторизовать эту операцию. Я мог бы поклясться, что мы могли бы использовать латекс для уравнений раньше, что-то изменилось или это другой веб-сайт?