Obecnie mam dwa tensora pochodni, p
i x
, które obie mają kształt (batch_size, input_size)
.
Chciałbym obliczyć prawdopodobieństwo logarytmu Bernoulliego dla zadanych danych i przywrócić niezmiennymi tensora mapie (batch_size)
Oto przykład tego, co chciałbym zrobić: U mnie jest to wzór dla logarytmicznych prawdopodobieństwa losowych Bernoulliego:
\sum_i^d x_{i} ln(p_i) + (1-x_i) ln (1-p_i)
Powiedz, co mam p
Niezmiennymi tensora:
[[0.6 0.4 0], [0.33 0.34 0.33]]
I powiedz mi, co mam x
niezmiennymi tensora dla binarnych danych wejściowych, bazując na tych możliwości:
[[1 1 0], [0 1 1]]
I chcę obliczyć logarytmicznej prawdopodobieństwo dla każdej próbki, co może prowadzić do:
[[ln(0.6)+ln(0.4)], [ln(0.67)+ln(0.34)+ln(0.33)]]
Czy można byłoby wykonać to obliczenie bez użycia pętli for?
Wiem, że mógłbym użyć torch.sum(axis=1)
aby wykonać ostateczne podsumowanie między rejestrami, ale czy to możliwe wykonać obliczenie logarytmicznej prawdopodobieństwa Bernoulli bez użycia pętli for? lub użyj nie więcej niż 1 dla cyklu? Staram się maksymalnie векторизовать tę operację. Mógłbym przysiąc, że możemy korzystać z lateksu dla równań wcześniej, że coś się zmieniło, czy to w inną stronę?