Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def compute_cost(X, Y, W, b, lambd):
- P, H = evaluate_classifier2(X, W, b)
- n = X.shape[1]
- loss = 0
- for i in range(n):
- loss -= np.log( Y[:, i:i+1].T @ P[:, i:i+1] )
- loss = np.asscalar(loss) / n
- regularization = 0
- for i in range(np.shape(W)[0]):
- regularization += lambd * np.sum(W[i]**2)
- J = loss + regularization
- return J#, loss
- def compute_cost_old(X,Y,W,b,lambd,return_loss=False):
- p = evaluate_classifier(X,W,b)
- reg_term = lambd * np.sum( [np.sum(np.square(W_i)) for W_i in W] )
- loss = 0
- #print('\ncomputing cost:\nP shape: {}'.format(p.shape))
- for i in range(X.shape[1]):
- loss += - np.log(Y[:,i:i+1].T @ p[:,i:i+1])
- loss = np.asscalar(loss)
- loss /= X.shape[1]
- cost = loss + reg_term
- #data_size = X.shape[1] if len(X.shape) == 2 else 1
- if return_loss:
- return cost.item(0), loss.item(0)
- return cost.item(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement