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)
# 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
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):