def test_images(): net = Network("MNIST") net.dataset.get("mnist") assert net.dataset.inputs.shape == [(28,28,1)] net.add(Layer("input", shape=(28, 28, 1), colormap="hot", minmax=(0,1))) net.add(FlattenLayer("flatten")) net.add(Layer("hidden1", shape=512, vshape=(16,32), activation='relu', dropout=0.2)) net.add(Layer("hidden2", shape=512, vshape=(16,32), activation='relu', dropout=0.2)) net.add(Layer("output", shape=10, activation='softmax')) net.connect('input', 'flatten') net.connect('flatten', 'hidden1') net.connect('hidden1', 'hidden2') net.connect('hidden2', 'output') net.compile(optimizer="adam", error="binary_crossentropy") svg = net.to_svg() assert svg is not None net.dataset.clear()
def test_images(): net = Network("MNIST") net.get_dataset("mnist") assert net.dataset.inputs.shape == [(28,28,1)] net.add(Layer("input", shape=(28, 28, 1), colormap="hot", minmax=(0,1))) net.add(FlattenLayer("flatten")) net.add(Layer("hidden1", shape=512, vshape=(16,32), activation='relu', dropout=0.2)) net.add(Layer("hidden2", shape=512, vshape=(16,32), activation='relu', dropout=0.2)) net.add(Layer("output", shape=10, activation='softmax')) net.connect('input', 'flatten') net.connect('flatten', 'hidden1') net.connect('hidden1', 'hidden2') net.connect('hidden2', 'output') net.compile(optimizer="adam", error="binary_crossentropy") svg = net.to_svg() assert svg is not None net.dataset.clear()
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, plot=False) net.test() net.save_weights("/tmp") net.load_weights("/tmp") 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, plot=False) net.evaluate(show=True) net.save_weights("/tmp") net.load_weights("/tmp") svg = net.to_svg() assert net is not None