示例#1
0
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
示例#2
0
    def __init__(self, width, height):
        self.features = []
        self.width = width
        self.height = height

        self.autoDriver = StackedAutoEncoderDriver()