コード例 #1
0
ファイル: DenoisingAutoEncoder.py プロジェクト: quynhdtn/DL
    def __init__(self,nIn=700, nHidden=500, corruption_level=0.1,id="", initial_w=None, initial_b=None,input=None, input_type="matrix", output=None, output_type="matrix",cost_function=CrossEntroyCostFunction):

        self.corruption_level = corruption_level

        self.id=id
        self.nIn=nIn
        self.nHidden=nHidden

        ilayer = DenoisingLayer(numNodes=nIn, ltype = Layer.Layer_Type_Input, id=id+"0", corruption_level=corruption_level)
        hlayer = Layer(numNodes=nHidden, ltype = Layer.Layer_Type_Hidden, id=id+"1")
        olayer = Layer(numNodes=nIn, ltype = Layer.Layer_Type_Output, id=id+"2")


        # declare nnnet
        iw = None
        ib=None

        if initial_w != None:
            iw = [initial_w,initial_w.T]
        if initial_b != None:
            ib = [initial_b, None]

        NNNet.__init__(self,[ilayer, hlayer, olayer],initial_w=iw, initial_b=ib, cost_function=cost_function, auto_create_connection=True,  input=input, output=output, input_type=input_type, output_type=output_type)

        # change parameter constraint
        conn1 = self.connections[0]
        conn2 = self.connections[1]

        self.params.remove(conn2.W)
        conn2.W = conn1.W.T
        self.y=self.x
        self.connect(self.x)
コード例 #2
0
ファイル: AutoEncoder.py プロジェクト: quynhdtn/DL
class AutoEncoder1:

    def __init__(self, nIn=700, nHidden=500):
        # declare layers
        ilayer = Layer(numNodes=nIn, ltype = Layer.Layer_Type_Input, id="0")
        hlayer = Layer(numNodes=nHidden, ltype = Layer.Layer_Type_Hidden, id="1")
        olayer = Layer(numNodes=nIn, ltype = Layer.Layer_Type_Output, id="2")

        # declare nnnet
        self.net = NNNet(ilayer, hlayer, olayer, cost_function=CrossEntroyCostFunction)

        # change parameter constraint
        conn1 = self.net.connections[0]
        conn2 = self.net.connections[1]

        self.net.params.remove(conn2.W)
        conn2.W = conn1.W.T


    def fit(self, train_data, batch_size, training_epochs, learning_rate):
        self.net.fit(train_data, train_data, batch_size, training_epochs, learning_rate)
        image = Image.fromarray(
            tile_raster_images(X=self.net.connections[0].W.get_value(borrow=True).T,
                               img_shape=(28, 28), tile_shape=(10, 10),
                               tile_spacing=(1, 1)))
        image.save('test_ae.png')
コード例 #3
0
ファイル: AutoEncoder.py プロジェクト: quynhdtn/DL
 def fit(self, train_data, batch_size, training_epochs, learning_rate):
     NNNet.fit(self, train_data, train_data, batch_size, training_epochs, learning_rate)
     image = Image.fromarray(
         tile_raster_images(X=self.connections[0].W.get_value(borrow=True).T,
                            img_shape=(28, 28), tile_shape=(10, 10),
                            tile_spacing=(1, 1)))
     image.save('test_ae1.png')
コード例 #4
0
ファイル: MLP.py プロジェクト: quynhdtn/DE
    def __init__(self, layers, size_output_layer=100,  activate_function=TanhOutputFunction, cost_function=SquaredErrorCostFunction, input=None, extend_input=None, input_type="matrix", output=None,  id=""):

        NNNet.__init__(self, layers=layers, cost_function=cost_function, input=input, output=output, input_type=input_type, output_type="vector")
        for i in range(len(layers)):
            self.layers[i].id = id + str(i)

        if layers[len(layers)-1].ltype != Layer.Layer_Type_Output:
            output_layer = Layer(numNodes=size_output_layer, ltype = Layer.Layer_Type_Output, id=id+str(len(layers)))
            self.layers.append(output_layer)

        rng = np.random.RandomState(123)
        for i in range(len(self.layers)-1):
            c = None
            if i <len(self.layers)-2:
                c = self.createConnection(self.layers[i],self.layers[i+1], of = activate_function)
            else:
                c = self.createConnection(self.layers[i],self.layers[i+1], of = SoftmaxOutputFunction, otype=Connection.Output_Type_SoftMax)

            self.connections.append(c)
            self.params=self.params+c.params
        if extend_input is None:
            if input_type == "matrix":
                self.x_extend = T.matrix(name='extend_input')

            if input_type == "vector":
                self.x = T.vector(name='extend_input')
        else:
            self.x_extend = extend_input

        self.layers[len(layers)-2].extend=self.x_extend

        self.connect(self.x)
コード例 #5
0
ファイル: DenoisingAutoEncoder.py プロジェクト: quynhdtn/DL
 def fit(self, train_data, batch_size, training_epochs, learning_rate, knowledge=None, l=None, llamda=None):
     if l is not None:
        self.setRegularization(l, llamda)
     self.knowledge=knowledge
     NNNet.fit(self, train_data, train_data, batch_size, training_epochs, learning_rate)
     image = Image.fromarray(
         tile_raster_images(X=self.connections[0].W.get_value(borrow=True).T,
                            img_shape=(np.sqrt(self.nIn), np.sqrt(self.nIn)), tile_shape=(10, 10),
                            tile_spacing=(1, 1)))
     image.save('test'+self.id+ '.png')
コード例 #6
0
ファイル: AutoEncoder.py プロジェクト: quynhdtn/DL
    def __init__(self, nIn=700, nHidden=500):

        # declare layers
        ilayer = Layer(numNodes=nIn, ltype = Layer.Layer_Type_Input, id="0")
        hlayer = Layer(numNodes=nHidden, ltype = Layer.Layer_Type_Hidden, id="1")
        olayer = Layer(numNodes=nIn, ltype = Layer.Layer_Type_Output, id="2")

        # declare nnnet
        NNNet.__init__(self, [ilayer, hlayer, olayer], cost_function=CrossEntroyCostFunction, auto_create_connection=True)

        # change parameter constraint
        conn1 = self.connections[0]
        conn2 = self.connections[1]

        self.params.remove(conn2.W)
        conn2.W = conn1.W.T
        self.connect(self.x)