from conx import Network inputs = [[0, 0], [0, 1], [1, 0], [1, 1]] def xor(inputs): a = inputs[0] b = inputs[1] return [[0.1, 0.9][int((a or b) and not(a and b))]] net = Network(2, 2, 1) net.set_inputs(inputs) net.set_target_function(xor) net.train() net.test() net = Network(2, 2, 2, 1) net.set_inputs(inputs) net.set_target_function(xor) net.train(max_training_epochs=10000) net.test() inputs = [[[0, 0], [0, 0]], [[0, 1], [1, 1]], [[1, 0], [1, 1]], [[1, 1], [0, 0]]] net = Network(2, 10, 2) net.set_inputs(inputs)
net = Network(784, 100, 1) inputs = [train_set[0][i] for i in range(len(train_set[0]))] targets = [[train_set[1][i]/9.0] for i in range(len(train_set[0]))] inputs = inputs[:100] targets = targets[:100] def display_digit(vector): for r in range(28): for c in range(28): v = int(vector[r * 28 + c] * 10) ch = " .23456789"[v] print(ch, end="") print() net.display_test_input = display_digit net.set_inputs(list(zip(inputs, targets))) net.test(2) net.train(report_rate=1, tolerance=0.05) net.test(2) for i in range(100): output = net.propagate(inputs[i]) target = int(targets[i][0] * 9) print("target:", target, "output:", output, "correct?", int(output * 10) == target)