def _forward(self, X, y): """Compute the forward of this loss, it includes the softmax and the cross entropy itself. Formula based of the CrossEntropyLoss of Pytorch: https://pytorch.org/docs/stable/nn.html#torch.nn.CrossEntropyLoss """ result = F.log(F.exp(X).sum(1)) - X[range(X.shape[0]), np.ravel(y.data)] if self.reduction == 'mean': return result.mean() elif self.reduction == 'sum': return result.sum() elif self.reduction == 'none': return result else: raise RuntimeError("Reduction not known")
def __call__(self, X): """Computes the forward pass.""" y = None ####################################################################### # TODO: Use the functional module to compute the first part of the # linear transfomation -> y = XW.T ####################################################################### y = F.matmul(X, self.W.t()) ####################################################################### # --------------------------- END OF YOUR CODE ------------------------ ####################################################################### if self.bias: ####################################################################### # TODO: If the bias is true add the bias. ####################################################################### y = F.add(y, self.b) ####################################################################### # --------------------------- END OF YOUR CODE ------------------------ ####################################################################### return y
def forward(self, X): output = None ####################################################################### # TODO: define your forward pass as follow # 1) y = linear(inputs) # 2) y_nl = relu(y) # 3) output = linear(y_nl) # softmax not needed because it's already in cross entropy ####################################################################### y = self.firstLayer(X) y_nl = F.relu(y) output = self.secondLayer(y_nl) ####################################################################### # --------------------------- END OF YOUR CODE ------------------------ ####################################################################### return output
def __truediv__(self, other): """.""" from functional import F return F.div(self, other)
def __mul__(self, other): """.""" from functional import F return F.mul(self, other)
def __sub__(self, other): """.""" from functional import F return F.sub(self, other)
def __add__(self, other): """.""" from functional import F return F.add(self, other)