EDIT: Apologies, figured it out - wasn’t sure how to delete

How come these two pieces of code do not give approximately equivalent outputs? Is there something about calculating BCE loss I’m not understanding?

```
import numpy as np
import torch
import torch.nn.functional as F
from torch.autograd import Variable as V
import torch.nn as nn
epsilon = 10e-8
def BCE_loss(x, y):
x = np.reshape(x, (x.shape[0], -1))
y = np.reshape(y, (y.shape[0], -1))
loss = np.sum(-y * np.log(x + epsilon) - (1 - y) * np.log(1 - x + epsilon))
#loss = -np.sum(y * np.log(x + epsilon))
return loss
x = np.array([[.5,.6, .7],[.9, .8, .9]])
y = np.array([[.9, .8, .7],[.4, .5, .6]])
print(BCE_loss(x, y))
xt = V(torch.from_numpy(x).unsqueeze(1))
yt = V(torch.from_numpy(y).unsqueeze(1))
loss_func = nn.BCELoss(size_average=False)
print(loss_func(xt, yt))
```