def main(): inst1 = Instance() inst1.attributes = np.array([[1,1]]) inst1.output_values = np.array([[0]]) inst2 = Instance() inst2.attributes = np.array([[0,1]]) inst2.output_values = np.array([[1]]) inst3 = Instance() inst3.attributes = np.array([[1,0]]) inst3.output_values = np.array([[1]]) inst4 = Instance() inst4.attributes = np.array([[0,0]]) inst4.output_values = np.array([[0]]) ann = NeuralNet([2, 2, 1], True) ann.learning_rate = 0.5 ann.momentum = 0.2 instances = list() instances.append(inst1) instances.append(inst2) instances.append(inst3) instances.append(inst4) ann.instances(instances) t = time.time() * 1000 ann.train(1800) t = (time.time() * 1000) - t ann.instance(inst1) ann.feed_forward() print ann ann.instance(inst2) ann.feed_forward() print ann ann.instance(inst3) ann.feed_forward() print ann ann.instance(inst4) ann.feed_forward() print ann print "Time: " + str(t)
def main(): f = "/Users/gabriel/Desktop/instances.txt" base_code = ord("A") with open(f) as f: lines = f.readlines() s = int(lines[0]) * int(lines[1]) n = int(lines[2]) l = 4 instances = list() while n > 0: n -= 1 pattern = np.zeros((1, s)) pattern_class = np.zeros((1, int(lines[2]))) pt_index = 0 inst = Instance() for i in range(int(lines[1])): for c in lines[l].strip(): pattern[0][pt_index] = 1 if c == "#" else 0 pt_index += 1 l += 1 pattern_class[0][ord(lines[l].strip()) - base_code] = 1 l += 1 inst.attributes = pattern inst.output_values = pattern_class inst.normalize() instances.append(inst) ann = NeuralNet([35, 35, 26], True) ann.learning_rate = 0.5 ann.momentum = 0.4 ann.instances(instances) ann.train(55) correct = 0 for i in instances: ann.instance(i) ann.feed_forward() f = chr(65 + np.argmax(i.output_values)) print "F={}".format(f) f_hat = chr(65 + np.argmax(ann.output)) print "F'={}".format(f_hat) if f == f_hat: correct += 1 else: print "ERROR!" print print str(correct / float(len(instances)) * 100) + " %"
classes.add(element[0]) for element in input_values: letter = element[0] out = np.zeros((1, 26)) out[0, ord(letter) - 65] = 1 element = np.delete(element, 0) element = element.astype(np.float) element = element.reshape((1, element.shape[0])) inst = Instance() inst.attributes = element inst.output_values = out inst.normalize() instances.append(inst) print "...Ready!" print "Instantiate neuralnet..." ann = NeuralNet([16, 32, 26], True) ann.learning_rate = 0.09 ann.momentum = 0.44 ann.instances(instances) print "...Ready!" print "Generate model..." ann.train(50, True) print "...Ready!" print ann