def test_AddDataToFile_SingleAddition(self): X = self.makeh5(np.array([[1, 2], [3, 4], [5, 6], [7, 8]])) T = self.makeh5(np.array([[1], [2], [3], [4]])) hpelm = HPELM(2, 1) hpelm.add_neurons(3, "lin") fHH = self.makefile() fHT = self.makefile() hpelm.add_data(X, T, fHH=fHH, fHT=fHT)
def test_AddDataToFile_MixedSequentialAsync(self): X = self.makeh5(np.array([[1, 2], [3, 4], [5, 6], [7, 8]])) T = self.makeh5(np.array([[1], [2], [3], [4]])) hpelm = HPELM(2, 1) hpelm.add_neurons(3, "lin") fHH = self.makefile() fHT = self.makefile() hpelm.add_data(X, T, fHH=fHH, fHT=fHT) hpelm.add_data_async(X, T, fHH=fHH, fHT=fHT)
def test_ValidationCorr_ReturnsConfusion(self): X = self.makeh5(np.random.rand(10, 3)) T = self.makeh5(np.random.rand(10, 2)) hpelm = HPELM(3, 2, classification="c") hpelm.add_neurons(6, "tanh") fHH = self.makefile() fHT = self.makefile() hpelm.add_data(X, T, fHH=fHH, fHT=fHT) _, _, confs = hpelm.validation_corr(fHH, fHT, X, T, steps=3) self.assertGreater(np.sum(confs[0]), 1)
def test_ValidationCorr_Works(self): X = self.makeh5(np.random.rand(30, 3)) T = self.makeh5(np.random.rand(30, 2)) hpelm = HPELM(3, 2, norm=1e-6) hpelm.add_neurons(6, "tanh") fHH = self.makefile() fHT = self.makefile() hpelm.add_data(X, T, fHH=fHH, fHT=fHT) nns, err, confs = hpelm.validation_corr(fHH, fHT, X, T, steps=3) self.assertGreater(err[0], err[-1])
def test_SolveCorr_Works(self): X = self.makeh5(np.array([[1, 2], [3, 4], [5, 6], [7, 8]])) T = self.makeh5(np.array([[1], [2], [3], [4]])) hpelm = HPELM(2, 1) hpelm.add_neurons(3, "lin") fHH = self.makefile() fHT = self.makefile() hpelm.add_data(X, T, fHH=fHH, fHT=fHT) hpelm.solve_corr(fHH, fHT) self.assertIsNot(hpelm.nnet.get_B(), None)
def test_ParallelBasicPython_Works(self): X = np.random.rand(1000, 10) T = np.random.rand(1000, 3) hX = modules.make_hdf5(X, self.fnameX) hT = modules.make_hdf5(T, self.fnameT) model0 = HPELM(10, 3) model0.add_neurons(10, 'lin') model0.add_neurons(5, 'tanh') model0.add_neurons(15, 'sigm') model0.save(self.fmodel) model1 = HPELM(10, 3) model1.load(self.fmodel) os.remove(self.fnameHT) os.remove(self.fnameHH) model1.add_data(self.fnameX, self.fnameT, istart=0, icount=100, fHH=self.fnameHH, fHT=self.fnameHT) model2 = HPELM(10, 3) model2.load(self.fmodel) model2.add_data(self.fnameX, self.fnameT, istart=100, icount=900, fHH=self.fnameHH, fHT=self.fnameHT) model3 = HPELM(10, 3) model3.load(self.fmodel) model3.solve_corr(self.fnameHH, self.fnameHT) model3.save(self.fmodel) model4 = HPELM(10, 3) model4.load(self.fmodel) model4.predict(self.fnameX, self.fnameY) err = model4.error(self.fnameT, self.fnameY, istart=0, icount=198) self.assertLess(err, 1) err = model4.error(self.fnameT, self.fnameY, istart=379, icount=872) self.assertLess(err, 1)
def main(): for neurons in range(100, 2100, 100): elm = HPELM(X_train.shape[1], 1, 'c', None, 100, None, 'single') elm.add_neurons(neurons, 'sigm') print("Starting incremental HH and HT files") for x in range(0, X_train.shape[0], 100): elm.add_data(X_train, y_train, istart=x, icount=100, fHH="HH_" + str(neurons) + ".hdf5", fHT="HT_" + str(neurons) + ".hdf5") print("Finished creating HH and HT files with " + str(neurons) + " neurons.") print("Starting to solve ELM with " + str(neurons) + " neurons.") elm.solve_corr("HH_" + str(neurons) + ".hdf5", "HT_" + str(neurons) + ".hdf5") elm.predict(X_train, "trainpreds_101_" + str(neurons) + "neurons.hdf5") elm.predict(X_test, "testpreds_101_" + str(neurons) + "neurons.hdf5")