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')
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')
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')