Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def ComputeGradients(X, Y, P, W, _lambda):
- grad_W = np.zeros([K,d]);
- grad_b = np.zeros([K,1]);
- n = X.shape[1];
- for i in range(n):
- g = np.reshape(-Y[:, i] + P[:, i], (10, 1));
- grad_W += g.dot(np.reshape(X[:, i], (1, d)));
- grad_b += g;
- grad_W /= n;
- grad_b /= n;
- grad_W += 2 * _lambda * W;
- return grad_W, grad_b;
- def ComputeCost(X, Y, W, b, _lambda):
- n = X.shape[1];
- crossLoss = 0;
- regLoss = 0;
- regLoss = _lambda * np.sum(W * W);
- for i in range(n):
- crossLoss -= np.log(Y.T[i].dot(forwardRun(X[:, i], W, np.reshape(b, (K,)).T)));
- crossLoss /= float(n);
- return (crossLoss + regLoss);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement