def test_ELM_SaveLoad(self):
     X = np.array([1, 2, 3, 1, 2, 3])
     T = np.array([[1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1]])
     elm = ELM(1, 2, precision='32', norm=0.02)
     elm.add_neurons(1, "lin")
     elm.add_neurons(2, "tanh")
     elm.train(X, T, "wc", w=(0.7, 0.3))
     B1 = elm.nnet.get_B()
     try:
         f, fname = tempfile.mkstemp()
         elm.save(fname)
         elm2 = ELM(3, 3)
         elm2.load(fname)
     finally:
         os.close(f)
     self.assertEqual(elm2.nnet.inputs, 1)
     self.assertEqual(elm2.nnet.outputs, 2)
     self.assertEqual(elm2.classification, "wc")
     self.assertIs(elm.precision, np.float32)
     self.assertIs(elm2.precision, np.float64)  # precision has changed
     np.testing.assert_allclose(np.array([0.7, 0.3]), elm2.wc)
     np.testing.assert_allclose(0.02, elm2.nnet.norm)
     np.testing.assert_allclose(B1, elm2.nnet.get_B())
     self.assertEqual(elm2.nnet.get_neurons()[0][1], "lin")
     self.assertEqual(elm2.nnet.get_neurons()[1][1], "tanh")
Пример #2
0
 def test_ELM_SaveLoad(self):
     X = np.array([1, 2, 3, 1, 2, 3])
     T = np.array([[1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1]])
     elm = ELM(1, 2, precision='32', norm=0.02)
     elm.add_neurons(1, "lin")
     elm.add_neurons(2, "tanh")
     elm.train(X, T, "wc", w=(0.7, 0.3))
     B1 = elm.nnet.get_B()
     try:
         f, fname = tempfile.mkstemp()
         elm.save(fname)
         elm2 = ELM(3, 3)
         elm2.load(fname)
     finally:
         os.close(f)
     self.assertEqual(elm2.nnet.inputs, 1)
     self.assertEqual(elm2.nnet.outputs, 2)
     self.assertEqual(elm2.classification, "wc")
     self.assertIs(elm.precision, np.float32)
     self.assertIs(elm2.precision, np.float64)  # precision has changed
     np.testing.assert_allclose(np.array([0.7, 0.3]), elm2.wc)
     np.testing.assert_allclose(0.02, elm2.nnet.norm)
     np.testing.assert_allclose(B1, elm2.nnet.get_B())
     self.assertEqual(elm2.nnet.get_neurons()[0][1], "lin")
     self.assertEqual(elm2.nnet.get_neurons()[1][1], "tanh")
Пример #3
0
def model_training(model_path, data_path, neurons=300):
    images, labels = read_mnist.load_mnist(data_path, kind='train')

    images = map(read_mnist.up_to_2D, images)
    images = map(get_hog, images)
    images = np.mat(np.array(images))

    labels = np.mat(map(read_mnist.handle_label, labels))

    elm = ELM(images.shape[1], labels.shape[1])

    elm.add_neurons(neurons, 'sigm')
    elm.add_neurons(neurons, 'sigm')
    # elm.add_neurons(int(images.shape[1]*0.8), 'sigm')
    # elm.add_neurons(int(images.shape[1]*0.6), 'tanh')
    elm.train(images, labels)
    elm.save(model_path)
Пример #4
0
    npos = sum((p == 1))
    print "\n Training results"
    print "Tpos:", ntpos, " / ", npos, "TD:", ntpos / float(npos)
    print "Acc: ", nhit / (float)(len(p)), "total", len(p)

    # now prediction for testing set
    prjinput = elmInput.project(XXtest)
    prjinput_normed = mapMinMax(prjinput)
    prjhidden = elmHidden1.project(prjinput_normed)
    prjhidden_normed = mapMinMax(prjhidden)
    youtput = elmOutput.predict(prjhidden_normed)

    # training results
    mse_error = elmOutput.error(youtput, YYtest)
    p = ytest.squeeze()
    yout = np.argmax(youtput, axis=1)
    nhit = sum(yout == p)
    ntpos = sum((yout == 1) & (p == 1))
    ntneg = sum((yout == 0) & (p == 0))
    npos = sum((p == 1))
    nneg = sum((p == 0))
    print "\n Testing results"
    print "Tpos:", ntpos, " / ", npos, "TD:", ntpos / float(npos)
    print "Tneg:", ntneg, " / ", nneg, "TN:", ntneg / float(nneg)
    print "Acc: ", nhit / (float)(len(p)), "total", len(p)

    print '\ saving layers'
    elmInput.save("elm_input_0")
    elmHidden1.save("elm_hidden_0")
    elmOutput.save("elm_output_0")