Actualmente tengo dos Antorcha Tensores, p
y x
que ambos tienen la forma de (batch_size, input_size)
.
Quiero calcular el Bernoulli registro de las probabilidades para los datos dados, y devolver un tensor de tamaño (batch_size)
He aquí un ejemplo de lo que me gustaría hacer: Tengo la fórmula para el registro de las probabilidades de variables Aleatorias de Bernoulli:
\sum_i^d x_{i} ln(p_i) + (1-x_i) ln (1-p_i)
Decir que tengo p
Tensor:
[[0.6 0.4 0], [0.33 0.34 0.33]]
Y decir que tengo el x
tensor para las entradas binarias basadas en esas probabilidades:
[[1 1 0], [0 1 1]]
Y quiero calcular el registro de probabilidad para cada una de las muestras, lo que daría como resultado:
[[ln(0.6)+ln(0.4)], [ln(0.67)+ln(0.34)+ln(0.33)]]
Sería posible hacer este cálculo sin el uso de bucles?
Sé que podría utilizar torch.sum(axis=1)
para hacer la presentación final entre los troncos, pero es posible hacer el registro de Bernoulli-probabilidad de cálculo sin el uso de bucles? o el uso en la mayoría de los 1 bucle for? Estoy tratando de vectorización esta operación tanto como sea posible. Yo podría haber jurado que podrían utilizar LaTeX para las ecuaciones antes, hizo que algo cambie o es otro sitio web?