Example #1
0
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) + " %"
for element in input_values:
    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!"