예제 #1
0
    def createSAEModels(self):
        for inovelty in range(self.all_trgt_sparse.shape[1]):
            # Initialize SAE objects for all novelties
            self.SAE[inovelty] = StackedAutoEncoders(
                parameters=self.parameters,
                save_path=self.getBaseResultsPath(),
                CVO=self.CVO,
                inovelty=inovelty,
                verbose=self.verbose)

        return self.SAE
 def createSAEModels(self):
     self.SAE = {}
     self.trn_data = {}
     self.trn_trgt = {}
     self.trn_trgt_sparse = {}
     if (self.trn_params == None):
         self.loadTrainParameters()
     for inovelty in range(self.trgt_sparse.shape[1]):
         self.trn_data[inovelty] = self.all_data[self.all_trgt != inovelty]
         self.trn_trgt[inovelty] = self.all_trgt[self.all_trgt != inovelty]
         self.trn_trgt[inovelty][
             self.trn_trgt[inovelty] > inovelty] = self.trn_trgt[inovelty][
                 self.trn_trgt[inovelty] > inovelty] - 1
         self.trn_trgt_sparse[inovelty] = np_utils.to_categorical(
             self.trn_trgt[inovelty].astype(int))
         # Initialize an SAE object for all novelties
         self.SAE[inovelty] = StackedAutoEncoders(
             params=self.trn_params,
             development_flag=self.development_flag,
             n_folds=self.n_folds,
             save_path=self.getBaseResultsPath(),
             CVO=self.CVO,
             noveltyDetection=True,
             inovelty=inovelty)
예제 #3
0
# Train Process
if len(sys.argv) < 2:
    print '[-] Usage: %s <novelty class>' % sys.argv[0]
    exit()

inovelty = int(sys.argv[2])
print '\nNovelty class to train: %i' % inovelty

# Choose neurons topology

# Create neurons vector to be used in multiprocessing.Pool()

SAE = StackedAutoEncoders(params=trn_params,
                          development_flag=development_flag,
                          n_folds=n_folds,
                          save_path=results_path,
                          CVO=CVO,
                          noveltyDetection=True,
                          inovelty=inovelty,
                          allow_change_weights=False)

n_folds = len(CVO[inovelty])

hidden_neurons = range(400, 0, -50) + [2]
print hidden_neurons

regularizer = ""  #dropout / l1 / l2
regularizer_param = 0.5

trn_data = all_data[all_trgt != inovelty]
trn_trgt = all_trgt[all_trgt != inovelty]
trn_trgt[trn_trgt > inovelty] = trn_trgt[trn_trgt > inovelty] - 1
예제 #4
0
    trn_params = trnparams.NeuralClassificationTrnParams()
    trn_params.load(trn_params_folder)

# Choose how many fold to be used in Cross Validation
n_folds = 2
CVO = trnparams.ClassificationFolds(folder=results_path,
                                    n_folds=2,
                                    trgt=all_trgt,
                                    dev=development_flag,
                                    verbose=True)
print trn_params.get_params_str()

# Train Process
SAE = StackedAutoEncoders(params=trn_params,
                          development_flag=development_flag,
                          n_folds=n_folds,
                          save_path=results_path,
                          CVO=CVO)

# Choose layer to be trained
layer = 1

hidden_neurons = range(400, 0, -50) + [2]
regularizer = "dropout"
regularizer_param = 0.5
print hidden_neurons


# Functions defined to be used by multiprocessing.Pool()
def trainNeuron(ineuron):
    for ifold in range(n_folds):