• API
• FAQ
• Tools
• Archive
SHARE
TWEET # Basic neural network example muntoo  Jan 7th, 2018 (edited) 117 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. def train(self, training_set_inputs, training_set_outputs):
2.     for i in range(100):
3.         self.train_global_step(training_set_inputs, training_set_outputs)
4.         if self.layer2_error < 0.1:
5.             break
6.
7. def train_global_step(self, training_set_inputs, training_set_outputs):
8.     self.layer2_error = 0
9.     self.learning_rate = 0.1
10.
11.     for iteration in range(len(training_set_inputs)):
12.         # Pass the training set through our neural network
13.         output_from_layer_1, output_from_layer_2 = self.think(training_set_inputs)
14.
15.         # Calculate the error for layer 2 (The difference between the desired output
16.         # and the predicted output).
17.         layer2_error = training_set_outputs - output_from_layer_2
18.         layer2_delta = layer2_error * self.__sigmoid_derivative(output_from_layer_2)
19.
20.         # Calculate the error for layer 1 (By looking at the weights in layer 1,
21.         # we can determine by how much layer 1 contributed to the error in layer 2).
22.         layer1_error = layer2_delta.dot(self.layer2.synaptic_weights.T)
23.         layer1_delta = layer1_error * self.__sigmoid_derivative(output_from_layer_1)
24.
25.         # Calculate how much to adjust the weights by
26.         layer1_adjustment = training_set_inputs.T.dot(layer1_delta)
27.         layer2_adjustment = output_from_layer_1.T.dot(layer2_delta)
28.
29.         # Adjust the weights.
30.         self.layer1.synaptic_weights += self.learning_rate*layer1_adjustment
31.         self.layer2.synaptic_weights += self.learning_rate*layer2_adjustment
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top