Example #1
0
    def test_seed_persistence(self):
        self.ae0 = AutoEncoder(seed=2345, **self.params)
        self.ae1 = AutoEncoder(seed=2345, **self.params)
        self.ae0.fit(X_TRAIN, epochnum=6)
        self.ae1.fit(X_TRAIN, epochnum=3)
        np.random.normal(size=50)
        self.ae1.fit(X_TRAIN, epochnum=3)

        check_ae_same_est(self.ae0, self.ae1)
Example #2
0
class TestAEPredict:
    def setup(self):
        self.ae = AutoEncoder(num_inputs=3, num_comp=2, seed=323440)
        self.ae.fit(X_TRAIN, epochnum=20)

    @raises(AttributeError)
    def test_predict_prob(self):
        self.ae.predict_prob(X_TRAIN)

    @raises(AttributeError)
    def test_classify(self):
        self.ae.classify(X_TRAIN)

    def test_project(self):
        project = self.ae.project(X_TRAIN)
        assert project.shape == X_TRAIN.shape

    def test_transform(self):
        transform = self.ae.transform(X_TRAIN)
        assert transform.shape[1] == 2
Example #3
0
# %cd M:/Libraries/Documents/Code/Python/simpleml/examples
sys.path.insert(1, os.path.join(sys.path[0], '..'))

from simpleml.neural import AutoEncoder


# Load data
with gzip.open('../data/mnist.gz', 'rb') as f:
    data = pickle.load(f)


# Setup autoencoder
num_comp = 25
ae = AutoEncoder(
    num_inputs=data['train'][0].shape[1],
    num_comp=num_comp,
    learn_rate=.5, momentum=.1, seed=23456
)

# Estimate autoencoder
start = time.perf_counter()
ae.fit(data['train'][0], epochnum=1, verbose=1)
print("Time: {:5.2f}".format(time.perf_counter() - start))

# Visualize the encodings
fig1 = plt.figure(figsize=(10, 10))
for i in range(num_comp):
    side = np.sqrt(num_comp)
    ax = fig1.add_subplot(side, side, i+1)
    ax.imshow(ae.layers[0].weights[1:, i].reshape([28, 28]), cmap=cm.Greys_r)
    ax.get_xaxis().set_visible(False)
Example #4
0
 def test_same_state(self):
     self.ae0 = AutoEncoder(seed=np.random.RandomState(345), **self.params)
     self.ae1 = AutoEncoder(seed=np.random.RandomState(345), **self.params)
     self.ae0.fit(X_TRAIN, epochnum=3)
     self.ae1.fit(X_TRAIN, epochnum=3)
     check_ae_same_est(self.ae0, self.ae1)
Example #5
0
 def test_same_seed(self):
     self.ae0 = AutoEncoder(seed=2345, **self.params)
     self.ae1 = AutoEncoder(seed=2345, **self.params)
     self.ae0.fit(X_TRAIN, epochnum=3)
     self.ae1.fit(X_TRAIN, epochnum=3)
     check_ae_same_est(self.ae0, self.ae1)
Example #6
0
class TestAESeed:
    params = {'num_inputs': 3, 'num_comp': 2}

    def test_same_seed(self):
        self.ae0 = AutoEncoder(seed=2345, **self.params)
        self.ae1 = AutoEncoder(seed=2345, **self.params)
        self.ae0.fit(X_TRAIN, epochnum=3)
        self.ae1.fit(X_TRAIN, epochnum=3)
        check_ae_same_est(self.ae0, self.ae1)

    def test_same_state(self):
        self.ae0 = AutoEncoder(seed=np.random.RandomState(345), **self.params)
        self.ae1 = AutoEncoder(seed=np.random.RandomState(345), **self.params)
        self.ae0.fit(X_TRAIN, epochnum=3)
        self.ae1.fit(X_TRAIN, epochnum=3)
        check_ae_same_est(self.ae0, self.ae1)

    def test_seed_persistence(self):
        self.ae0 = AutoEncoder(seed=2345, **self.params)
        self.ae1 = AutoEncoder(seed=2345, **self.params)
        self.ae0.fit(X_TRAIN, epochnum=6)
        self.ae1.fit(X_TRAIN, epochnum=3)
        np.random.normal(size=50)
        self.ae1.fit(X_TRAIN, epochnum=3)

        check_ae_same_est(self.ae0, self.ae1)
Example #7
0
 def setup(self):
     self.ae = AutoEncoder(num_inputs=3, num_comp=2, seed=323440)
     self.ae.fit(X_TRAIN, epochnum=20)
Example #8
0
    def test_fit(self):
        x = np.array([[0.1, 0.1], [0, 0.1], [1.1, 0.9], [1, 1.1]])

        ae = AutoEncoder(num_inputs=2, num_comp=1, seed=323440)
        ae.fit(x, epochnum=20)
Example #9
0
 def test_nodes(self):
     ae = AutoEncoder(num_inputs=5, num_comp=3)
     assert ae.layers[0].num_inputs == 6
     assert ae.layers[0].num_nodes == 4