numx.random.seed(42) # Load data (download is not existing) data = io.load_natural_image_patches('NaturalImage.mat') # Remove the mean of ech image patch separately (also works without) data = pre.remove_rows_means(data) # Set input/output dimensions v1 = 14 v2 = 14 h1 = 14 h2 = 14 # Whiten data using ZCA zca = pre.ZCA(v1 * v2) zca.train(data) data = zca.project(data) # Split into training/test data train_data = data[0:40000] test_data = data[40000:70000] # Set restriction factor, learning rate, batch size and maximal number of epochs restrict = 0.01 * numx.max(numxext.get_norms(train_data, axis=1)) eps = 0.1 batch_size = 100 max_epochs = 200 # Create model, initial weights=Glorot init., initial sigma=1.0, initial bias=0, # no centering (Usually pass the data=training_data for a automatic init. that is
import pydeep.rbm.model as model import pydeep.rbm.trainer as trainer import pydeep.rbm.estimator as estimator # Import linear mixture, preprocessing, and visualization from pydeep.misc.toyproblems import generate_2d_mixtures import pydeep.preprocessing as pre import pydeep.misc.visualization as vis numx.random.seed(42) # Create a 2D mxiture data, mixing_matrix = generate_2d_mixtures(100000, 1, 1.0) # Whiten data zca = pre.ZCA(data.shape[1]) zca.train(data) whitened_data = zca.project(data) # split training test data train_data = whitened_data[0:numx.int32(whitened_data.shape[0] / 2.0), :] test_data = whitened_data[numx.int32(whitened_data.shape[0] / 2.0):whitened_data.shape[0], :] # Input output dims h1 = 2 h2 = 2 v1 = whitened_data.shape[1] v2 = 1 # Create model