Skip to content
Snippets Groups Projects
Commit 7455fd98 authored by Charly LAMOTHE's avatar Charly LAMOTHE
Browse files

Replace use_dev_subset by subsets_used parameter, in order to specify more...

Replace use_dev_subset by subsets_used parameter, in order to specify more clearly which combination of train dev to used to train the forest and OMP
parent d45cbb42
No related branches found
No related tags found
1 merge request!3clean scripts
......@@ -5,11 +5,11 @@ import os
class ModelParameters(object):
def __init__(self, forest_size, extracted_forest_size, normalize_D, use_dev_subset, seed=None):
def __init__(self, forest_size, extracted_forest_size, normalize_D, subsets_used, seed=None):
self._forest_size = forest_size
self._extracted_forest_size = extracted_forest_size
self._normalize_D = normalize_D
self._use_dev_subset = use_dev_subset
self._subsets_used = subsets_used
self._seed = seed
@property
......@@ -25,8 +25,8 @@ class ModelParameters(object):
return self._normalize_D
@property
def use_dev_subset(self):
return self._use_dev_subset
def subsets_used(self):
return self._subsets_used
@property
def seed(self):
......
......@@ -17,20 +17,25 @@ class Trainer(object):
self._logger.debug('Training model using train set...')
begin_time = time.time()
if model.models_parameters.use_dev_subset:
if model.models_parameters.subsets_used == 'train,dev':
X_forest = self._dataset.X_train
y_forest = self._dataset.y_train
X_omp = self._dataset.X_dev
y_omp = self._dataset.y_dev
self._logger.debug('Fitting the forest on train subset and OMP on dev subset.')
else:
elif model.models_parameters.subsets_used == 'train+dev,train+dev':
X_forest = np.concatenate([self._dataset.X_train, self._dataset.X_dev])
X_omp = X_forest
y_forest = np.concatenate([self._dataset.y_train, self._dataset.y_dev])
y_omp = y_forest
self._logger.debug('Fitting both the forest and OMP on train+dev subsets.')
# TODO: add an option to train forest to train+dev and OMP to dev
elif model.models_parameters.subsets_used == 'train,train+dev':
X_forest = self._dataset.X_train
y_forest = self._dataset.y_train
X_omp = np.concatenate([self._dataset.X_train, self._dataset.X_dev])
y_omp = np.concatenate([self._dataset.y_train, self._dataset.y_dev])
else:
raise ValueError("Unknown specified subsets_used parameter '{}'".format(model.models_parameters.subsets_used))
model.fit(
X_forest=X_forest,
......
......@@ -29,7 +29,7 @@ if __name__ == "__main__":
DEFAULT_DEV_SIZE = 0.2
DEFAULT_TEST_SIZE = 0.2
DEFAULT_RANDOM_SEED_NUMBER = 1
DEFAULT_USE_DEV_SUBSET = False
DEFAULT_SUBSETS_USED = 'train,dev'
DEFAULT_DISABLE_PROGRESS = False
begin_random_seed_range = 1
......@@ -46,7 +46,7 @@ if __name__ == "__main__":
parser.add_argument('--test_size', nargs='?', type=float, default=DEFAULT_TEST_SIZE, help='Test subset ratio.')
parser.add_argument('--random_seed_number', nargs='?', type=int, default=DEFAULT_RANDOM_SEED_NUMBER, help='Number of random seeds used.')
parser.add_argument('--seeds', nargs='+', type=int, default=None, help='Specific a list of seeds instead of generate them randomly')
parser.add_argument('--use_dev_subset', action='store_true', default=DEFAULT_USE_DEV_SUBSET, help='If specify the forest will be trained on train subset and OMP on dev subset. Otherwise both the forest and OMP will be trained on train+dev subsets.')
parser.add_argument('--subsets_used', nargs='+', type=str, default=DEFAULT_SUBSETS_USED, help='train,dev: forest on train, OMP on dev. train+dev,train+dev: both forest and OMP on train+dev. train,train+dev: forest on train+dev and OMP on dev.')
parser.add_argument('--disable_progress', action='store_true', default=DEFAULT_DISABLE_PROGRESS, help='Disable the progress bars.')
args = parser.parse_args()
......@@ -101,7 +101,7 @@ if __name__ == "__main__":
forest_size=args.forest_size,
extracted_forest_size=extracted_forest_size,
normalize_D=args.normalize_D,
use_dev_subset=args.use_dev_subset,
subsets_used=args.subsets_used,
seed=seed
)
model_parameters.save(sub_models_dir, experiment_id)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment