-
-
Save shamdasani/53dffcf16f5ddb31de98c3541661d9a5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
# X = (hours sleeping, hours studying), y = score on test | |
X = np.array(([2, 9], [1, 5], [3, 6]), dtype=float) | |
y = np.array(([92], [86], [89]), dtype=float) | |
# scale units | |
X = X/np.amax(X, axis=0) # maximum of X array | |
y = y/100 # max test score is 100 | |
class Neural_Network(object): | |
def __init__(self): | |
#parameters | |
self.inputSize = 2 | |
self.outputSize = 1 | |
self.hiddenSize = 3 | |
#weights | |
self.W1 = np.random.randn(self.inputSize, self.hiddenSize) # (3x2) weight matrix from input to hidden layer | |
self.W2 = np.random.randn(self.hiddenSize, self.outputSize) # (3x1) weight matrix from hidden to output layer | |
def forward(self, X): | |
#forward propagation through our network | |
self.z = np.dot(X, self.W1) # dot product of X (input) and first set of 3x2 weights | |
self.z2 = self.sigmoid(self.z) # activation function | |
self.z3 = np.dot(self.z2, self.W2) # dot product of hidden layer (z2) and second set of 3x1 weights | |
o = self.sigmoid(self.z3) # final activation function | |
return o | |
def sigmoid(self, s): | |
# activation function | |
return 1/(1+np.exp(-s)) | |
NN = Neural_Network() | |
#defining our output | |
o = NN.forward(X) | |
print "Predicted Output: \n" + str(o) | |
print "Actual Output: \n" + str(y) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment