def test_discrete_hopfield_async(self): data = np.concatenate([zero, one, two], axis=0) data_before = data.copy() dhnet = algorithms.DiscreteHopfieldNetwork(mode="async", n_times=1000) dhnet.train(data) half_zero_before = half_zero.copy() np.testing.assert_array_almost_equal(zero, dhnet.predict(half_zero)) np.testing.assert_array_almost_equal(one, dhnet.predict(half_one)) np.testing.assert_array_almost_equal(two, dhnet.predict(half_two)) multiple_outputs = np.vstack([zero, one, two]) multiple_inputs = np.vstack([half_zero, half_one, half_two]) np.testing.assert_array_almost_equal(multiple_outputs, dhnet.predict(multiple_inputs)) np.testing.assert_array_equal(data_before, data) np.testing.assert_array_equal(half_zero, half_zero_before)
def test_discrete_hopfield_sync(self): data = np.concatenate([zero, one, two], axis=0) data_before = data.copy() dhnet = algorithms.DiscreteHopfieldNetwork(mode="sync") dhnet.train(data) half_zero_before = half_zero.copy() np.testing.assert_array_almost_equal(zero, dhnet.predict(half_zero)) np.testing.assert_array_almost_equal(two, dhnet.predict(half_two)) # Test predicition for the 1d array np.testing.assert_array_almost_equal(one, dhnet.predict(half_one.ravel())) multiple_inputs = np.vstack([zero, one, two]) np.testing.assert_array_almost_equal(multiple_inputs, dhnet.predict(multiple_inputs)) np.testing.assert_array_equal(data_before, data) np.testing.assert_array_equal(half_zero, half_zero_before)
def test_discrete_hopfield_async(self): data = np.concatenate([zero, one, two], axis=0) data_before = data.copy() dhnet = algorithms.DiscreteHopfieldNetwork(mode='async', n_times=1000) dhnet.train(data) half_zero_before = half_zero.copy() np.testing.assert_array_almost_equal(zero, dhnet.predict(half_zero)) np.testing.assert_array_almost_equal(one, dhnet.predict(half_one)) np.testing.assert_array_almost_equal(two, dhnet.predict(half_two)) multiple_outputs = np.vstack([zero, one, two]) multiple_inputs = np.vstack([half_zero, half_one, half_two]) np.testing.assert_array_almost_equal( multiple_outputs, dhnet.predict(multiple_inputs), ) np.testing.assert_array_equal(data_before, data) np.testing.assert_array_equal(half_zero, half_zero_before)
def test_discrete_hopfield_sync(self): data = np.concatenate([zero, one, two], axis=0) data_before = data.copy() dhnet = algorithms.DiscreteHopfieldNetwork(mode='sync') dhnet.train(data) half_zero_before = half_zero.copy() np.testing.assert_array_almost_equal(zero, dhnet.predict(half_zero)) np.testing.assert_array_almost_equal(two, dhnet.predict(half_two)) # Test predicition for the 1d array np.testing.assert_array_almost_equal(one, dhnet.predict(half_one.ravel())) multiple_inputs = np.vstack([zero, one, two]) np.testing.assert_array_almost_equal(multiple_inputs, dhnet.predict(multiple_inputs)) np.testing.assert_array_equal(data_before, data) np.testing.assert_array_equal(half_zero, half_zero_before)