def test_xor2(): """ Two inputs, two outputs. """ net = Network("XOR2") net.add(Layer("input1", shape=1)) net.add(Layer("input2", shape=1)) net.add(Layer("hidden1", shape=2, activation="sigmoid")) net.add(Layer("hidden2", shape=2, activation="sigmoid")) net.add(Layer("shared-hidden", shape=2, activation="sigmoid")) net.add(Layer("output1", shape=1, activation="sigmoid")) net.add(Layer("output2", shape=1, activation="sigmoid")) net.connect("input1", "hidden1") net.connect("input2", "hidden2") net.connect("hidden1", "shared-hidden") net.connect("hidden2", "shared-hidden") net.connect("shared-hidden", "output1") net.connect("shared-hidden", "output2") net.compile(error='mean_squared_error', optimizer=SGD(lr=0.3, momentum=0.9)) net.dataset.load([ ([[0],[0]], [[0],[0]]), ([[0],[1]], [[1],[1]]), ([[1],[0]], [[1],[1]]), ([[1],[1]], [[0],[0]]) ]) net.train(2000, report_rate=10, accuracy=1, plot=False) net.test() net.propagate_to("shared-hidden", [[1], [1]]) net.propagate_to("output1", [[1], [1]]) net.propagate_to("output2", [[1], [1]]) net.propagate_to("hidden1", [[1], [1]]) net.propagate_to("hidden2", [[1], [1]]) net.propagate_to("output1", [[1], [1]]) net.propagate_to("output2", [[1], [1]]) net.save_weights("/tmp") net.load_weights("/tmp") net.test() svg = net.to_svg() assert net is not None
def test_xor2(): """ Two inputs, two outputs. """ net = Network("XOR2") net.add(Layer("input1", shape=1)) net.add(Layer("input2", shape=1)) net.add(Layer("hidden1", shape=2, activation="sigmoid")) net.add(Layer("hidden2", shape=2, activation="sigmoid")) net.add(Layer("shared-hidden", shape=2, activation="sigmoid")) net.add(Layer("output1", shape=1, activation="sigmoid")) net.add(Layer("output2", shape=1, activation="sigmoid")) net.connect("input1", "hidden1") net.connect("input2", "hidden2") net.connect("hidden1", "shared-hidden") net.connect("hidden2", "shared-hidden") net.connect("shared-hidden", "output1") net.connect("shared-hidden", "output2") net.compile(error='mean_squared_error', optimizer=SGD(lr=0.3, momentum=0.9)) net.dataset.load([ ([[0],[0]], [[0],[0]]), ([[0],[1]], [[1],[1]]), ([[1],[0]], [[1],[1]]), ([[1],[1]], [[0],[0]]) ]) net.train(2000, report_rate=10, accuracy=1, plot=False) net.evaluate(show=True) net.propagate_to("shared-hidden", [[1], [1]]) net.propagate_to("output1", [[1], [1]]) net.propagate_to("output2", [[1], [1]]) net.propagate_to("hidden1", [[1], [1]]) net.propagate_to("hidden2", [[1], [1]]) net.propagate_to("output1", [[1], [1]]) net.propagate_to("output2", [[1], [1]]) net.save_weights("/tmp") net.load_weights("/tmp") net.evaluate(show=True) svg = net.to_svg() assert net is not None
def test_xor1(): """ Standard XOR. """ net = Network("XOR") net.add(Layer("input", 2)) net.add(Layer("hidden", 5)) net.add(Layer("output", 1)) net.connect("input", "hidden") net.connect("hidden", "output") net.compile(error="binary_crossentropy", optimizer="adam") net.summary() net.model.summary() net.dataset.load([[[0, 0], [0]], [[0, 1], [1]], [[1, 0], [1]], [[1, 1], [0]]]) net.train(epochs=2000, accuracy=1, report_rate=25) net.test() net.save_weights("/tmp") net.load_weights("/tmp") svg = net.build_svg() assert net is not None
def test_xor1(): """ Standard XOR. """ net = Network("XOR") net.add(Layer("input", 2)) net.add(Layer("hidden", 5)) net.add(Layer("output", 1)) net.connect("input", "hidden") net.connect("hidden", "output") net.compile(error="binary_crossentropy", optimizer="adam") net.summary() net.model.summary() net.dataset.load([[[0, 0], [0]], [[0, 1], [1]], [[1, 0], [1]], [[1, 1], [0]]]) net.train(epochs=2000, accuracy=1, report_rate=25, plot=False) net.evaluate(show=True) net.save_weights("/tmp") net.load_weights("/tmp") svg = net.to_svg() assert net is not None