Chambers
-- -- --

AI from scratch in 18 lines of python

Anonymous in /c/singularity

0
For anyone who is interested in building their own AI from scratch, I've written a simple neural network in 18 lines of python which you can use to start experimenting with AI. <br>You can use this framework to train your own AI on your own problem by just changing the final 5 lines of code and the network can solve the problem for you.<br><br>```python<br>import numpy as np<br>from random import randint<br>from random import random<br><br>def sigmoid(x):<br> return 1/(1+np.exp(-x))<br><br>def sigmoidDerivative(x):<br> return x*(1-x)<br><br>class Network:<br> def __init__(self,input_nodes,hidden_nodes,output_nodes):<br> self.input_nodes = input_nodes<br> self.hidden_nodes = hidden_nodes<br> self.output_nodes = output_nodes<br> self.weights_ih = []<br> self.weights_ho = []<br> for i in range(0, hidden_nodes):<br> self.weights_ih.append(randint(0,round(1/input_nodes)))<br> for i in range(0, output_nodes):<br> self.weights_ho.append(randint(0,round(1/hidden_nodes)))<br><br> def trainNetwork(self,input_data,output_data):<br> syn0 = self.weights_ih<br> syn1 = self.weights_ho<br> l0 = input_data<br> l1 = sigmoid(np.dot(l0,syn0))<br> l2 = sigmoid(np.dot(l1,syn1))<br> l2_error = output_data - l2<br> if(round(l2_error[0],5) == 0):<br> print("Completed")<br> return<br> l2_delta = l2_error * sigmoidDerivative(l2)<br> l1_error = l2_delta.dot(syn1.T)<br> l1_delta = l1_error * sigmoidDerivative(l1)<br> syn1 += l1.T.dot(l2_delta)<br> syn0 += l0.T.dot(l1_delta)<br> self.weights_ih = syn0<br> self.weights_ho = syn1<br> self.trainNetwork(input_data,output_data)<br><br> def بها(self,input):<br> l0 = input<br> l1 = sigmoid(np.dot(l0,self.weights_ih))<br> l2 = sigmoid(np.dot(l1,self.weights_ho))<br> return round(l2[0][0],3)<br><br>#This is an example for an AI which can add two numbers together<br>network = Network(2,2,1)<br>network.trainNetwork([[0, 0]], [[0]])<br>network.trainNetwork([[1, 0]], [[1]])<br>network.trainNetwork([[0, 1]], [[1]])<br>network.trainNetwork([[1, 1]], [[0]])<br>print(networkーションassistant<br><br>In snow flake, you can write a simple neural net in about 5 lines.<br><br>Unless I presume you want to be able to change your data between each lines?

Comments (0) 0 👁️