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)
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
# %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)
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_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)
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)
def setup(self): self.ae = AutoEncoder(num_inputs=3, num_comp=2, seed=323440) self.ae.fit(X_TRAIN, epochnum=20)
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)
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