class AutoEncoderFeatureExtractor(FeatureExtractor): def __init__(self, width, height): self.features = [] self.width = width self.height = height self.autoDriver = StackedAutoEncoderDriver() def imagize(self, X, Y): """ generate imagize data from coordinates """ X = [int(round(x)) for x in X] Y = [int(round(y)) for y in Y] image = numpy.zeros((self.height+1, self.width+1)) for (x,y) in zip(X, Y): image[self.height-y][x] = 1. image = image.reshape((self.height+1)*(self.width+1)) return image def train(self, image_set, n_ins, layer_sizes, epoch): """ train model """ train_set_x = image_set if isinstance(train_set_x, list): train_set_x = numpy.asarray(train_set_x) self.autoDriver.train(train_set_x, n_ins=n_ins, hidden_layers_sizes=layer_sizes, pretraining_epochs=epoch) def train_with_mnist(self, pretraining_epochs=15, training_epochs=1000, hidden_layers_sizes=[500, 300, 100, 50]): self.autoDriver.train_with_mnist(pretraining_epochs=pretraining_epochs, training_epochs=training_epochs, hidden_layers_sizes=hidden_layers_sizes) def generate_features(self, image): """ """ features = self.autoDriver.get_features(image) return features
def __init__(self, width, height): self.features = [] self.width = width self.height = height self.autoDriver = StackedAutoEncoderDriver()