x_train[y_train == 2][:500], x_train[y_train == 3][:500], x_train[y_train == 4][:500], x_train[y_train == 5][:500], x_train[y_train == 6][:500], x_train[y_train == 7][:500], x_train[y_train == 8][:500], x_train[y_train == 9][:500] ], (500 * 10, 28, 28)) np.random.shuffle(x_train) # generator model noise_size = 100 G = create_model([ Dense(200, input_shape=(1, noise_size)), LeakyReLU(0.2), Dense(784), Sigmoid() ], He(), Adam, {'learning_rate': 0.0001, 'beta_1': 0.5}) # discriminator D = create_model([ Dense(200, input_shape=(1, 784)), LeakyReLU(0.2), Dense(1), Sigmoid() ], He(), Adam, {'learning_rate': 0.0001, 'beta_1': 0.5}) # params loss = BinaryCrossEntropy() epochs = 50 batch_size = 8
import sys sys.path.append('..') import numpy as np from net.layers import Dense from net.activations import Sigmoid from net.losses import MSE from net.optimizers import Momentum from net.initializers import Xavier from net.utils import create_model, train, test X = np.reshape([[0, 0], [0, 1], [1, 0], [1, 1]], (4, 1, 2)) Y = np.reshape([[0], [1], [1], [0]], (4, 1, 1)) model = create_model( [Dense(3, input_shape=(1, 2)), Sigmoid(), Dense(1), Sigmoid()], Xavier(), Momentum, {'learning_rate': 0.1}) mse = MSE() train(model, mse, X, Y, epochs=1000) print('error on test set:', test(model, mse, X, Y))
import sys sys.path.append('..') import numpy as np from net.layers import Dense from net.activations import Tanh from net.losses import MSE from net.optimizers import SGD from net.initializers import Xavier from net.utils import create_model, train, test X = np.reshape([[0, 0], [0, 1], [1, 0], [1, 1]], (4, 1, 2)) Y = np.reshape([[0], [1], [1], [0]], (4, 1, 1)) model = create_model([ Dense(3, input_shape=(1, 2)), Tanh(), Dense(1), Tanh() ], Xavier(), SGD, {'learning_rate': 0.1}) mse = MSE() train(model, mse, X, Y, epochs=1000) print('error on test set:', test(model, mse, X, Y))
def load_data(n): (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train = x_train.astype('float32') x_train /= 255 y_train = np_utils.to_categorical(y_train) x_test = x_test.astype('float32') x_test /= 255 y_test = np_utils.to_categorical(y_test) return x_train[:n], y_train[:n], x_test, y_test model = create_model([ Reshape((1, 784), input_shape=(28, 28)), Dense(50), Tanh(), Dense(20), Tanh(), Dense(10), Softmax() ], Xavier(), SGD, {'learning_rate': 0.1}) mse = MSE() x_train, y_train, x_test, y_test = load_data(1000) train(model, mse, x_train, y_train, epochs=30) print('error on test set:', test(model, mse, x_test, y_test))
x_train = x_train.astype('float32') x_train /= 255 x_test = x_test.astype('float32') x_test /= 255 return x_train[:n], x_test model = create_model([ Reshape((1, 784), input_shape=(28, 28)), Dense(30), Tanh(), Dense(16), Tanh(), Dense(30), Tanh(), Dense(784), Reshape((28, 28)) ], Xavier(), SGD, {'learning_rate': 0.1}) mse = MSE() x_train, x_test = load_data(1000) train(model, mse, x_train, x_train, epochs=50) print('error on test set:', test(model, mse, x_test, x_test)) encoder = model[:5] decoder = model[5:] f, ax = plt.subplots(5, 3)