Skip to content

Instantly share code, notes, and snippets.

View shashankprasanna's full-sized avatar
🛠️

Shashank shashankprasanna

🛠️
View GitHub Profile
data = cudf.read_csv(data_dir+'HIGGS.csv', names=col_names, dtype=dtypes_ls)
X_train, X_test, y_train, y_test = train_test_split(data, 'label', train_size=0.70)
hyperparams={
'n_estimators' : args.n_estimators,
'max_depth' : args.max_depth,
'n_bins' : args.n_bins,
'split_criterion' : args.split_criterion,
'split_algo' : args.split_algo,
'bootstrap' : args.bootstrap,
parser = argparse.ArgumentParser()
# Hyper-parameters
parser.add_argument('--n_estimators', type=int, default=20)
parser.add_argument('--max_depth', type=int, default=16)
parser.add_argument('--n_bins', type=int, default=8)
parser.add_argument('--split_criterion', type=int, default=0)
parser.add_argument('--split_algo', type=int, default=0)
parser.add_argument('--bootstrap', type=bool, default=True)
parser.add_argument('--bootstrap_features', type=bool, default=False)
hyperparams={
'n_estimators' : 15,
'max_depth' : 5,
'n_bins' : 8,
'split_criterion' : 0, # GINI:0, ENTROPY:1
'split_algo' : 0, # HIST:0 GLOBAL_QUANTILE:1
'bootstrap' : 0, # true: sample with replacement, false: sample without replacement
'bootstrap_features' : 0, # true: sample with replacement, false: sample without replacement
'max_leaves' : -1, # unlimited leaves
'max_features' : 0.2,
from sagemaker.estimator import Estimator
train_instance_type = 'local_gpu'
local_data_dir = 'file://./dataset'
rapids_estimator = Estimator(image_name='sagemaker-rapids:latest',
role=role,
train_instance_count=1,
train_instance_type=train_instance_type,
hyperparameters=hyperparams,
from sagemaker.tuner import IntegerParameter, CategoricalParameter, ContinuousParameter, HyperparameterTuner
hyperparameter_ranges = {
'n_estimators' : IntegerParameter(10, 200),
'max_depth' : IntegerParameter(1, 22),
'n_bins' : IntegerParameter(5, 24),
'split_criterion' : CategoricalParameter([0, 1]),
'split_algo' : CategoricalParameter([0, 1]),
'bootstrap' : CategoricalParameter([True, False]),
'bootstrap_features' : CategoricalParameter([True, False]),
from sagemaker.estimator import Estimator
train_instance_type = 'ml.p3.2xlarge'
rapids_estimator = Estimator(image_name=image,
role=role,
train_instance_count=1,
train_instance_type=train_instance_type,
hyperparameters=hyperparams,
metric_definitions=[{'Name': 'test_acc', 'Regex': 'test_acc: ([0-9\\.]+)'}])
tuner = HyperparameterTuner(rapids_estimator,
objective_metric_name='test_acc',
hyperparameter_ranges=hyperparameter_ranges,
strategy='Bayesian',
max_jobs=1,
max_parallel_jobs=1,
objective_type='Maximize',
metric_definitions=[{'Name': 'test_acc', 'Regex': 'test_acc: ([0-9\\.]+)'}])
s3_data_dir = sagemaker_session.upload_data(path='dataset', key_prefix='dataset/higgs-dataset')
job_name = 'rapidsHPO' + time.strftime('%Y-%m-%d-%H-%M-%S-%j', time.gmtime())
tuner.fit({'dataset': s3_data_dir}, job_name=job_name)
callbacks = []
callbacks.append(hvd.callbacks.BroadcastGlobalVariablesCallback(0))
callbacks.append(hvd.callbacks.MetricAverageCallback())
callbacks.append(hvd.callbacks.LearningRateWarmupCallback(warmup_epochs=5, verbose=1))
callbacks.append(tf.keras.callbacks.ReduceLROnPlateau(patience=10, verbose=1))
if hvd.rank() == 0:
callbacks.append(ModelCheckpoint(args.output_data_dir + '/checkpoint-{epoch}.h5'))
logdir = args.output_data_dir + '/' + datetime.now().strftime("%Y%m%d-%H%M%S")
callbacks.append(TensorBoard(log_dir=logdir))
callbacks.append(Sync2S3(logdir=logdir, s3logdir=tensorboard_logs))
history = model.fit(train_dataset,
steps_per_epoch = (NUM_TRAIN_IMAGES // batch_size) // size,
validation_data = val_dataset,
validation_steps = (NUM_VALID_IMAGES // batch_size) // size,
verbose = 1 if hvd.rank() == 0 else 0,
epochs = epochs, callbacks=callbacks)