def search_default(cls) -> "FullyConv1Resnet.ModelParams": return cls( num_groups=params.Discrete([8, 16, 32, 64]), num_blocks_per_residual=params.Integer(1, 5), activation=params.Categorical([nn.LeakyReLU, nn.GELU]), do_include_first_norm=params.Boolean(p_true=0.8), )
class ModelHyperParams(params.ParameterSet): num_hidden_layers = params.Integer(1, 4) num_neurons_per_layer = params.Discrete( np.logspace(2, 7, num=6, base=2, dtype=np.int)) dropout_rate = params.Float(0.0, 0.99) activation = params.Categorical(['relu', 'sigmoid']) output_dir = '/tmp/output' filter_size = 3
'korv_which', 'conv', 'sharp', 'search', 'v0.0.1' ] hp.exp.sources_glob_str = constants.THIS_DIR.parent.parent / '**/*.py' hp.embed.dim = 16 hp.embed.requires_grad = True hp.conv.num_features = params.Discrete([32, 64, 128, 256]) hp.conv.num_layers = params.Integer(2, 11) hp.conv.kernel_size = 3 hp.conv.num_groups = params.Discrete([8, 16, 32, 64]) hp.conv.num_blocks_per_pool = 20 hp.conv.num_blocks_per_skip = 2 hp.conv.requires_grad = True hp.trans.impl = params.Categorical(['fast', 'fast-favor']) hp.trans.num_layers = params.Discrete([0, 2, 4, 6, 8]) hp.trans.num_heads = params.Discrete([4, 8, 12]) hp.trans.num_query_features = params.Discrete([0, 32, 64, 128, 256, 512]) hp.trans.fc_dim_mult = params.Discrete([1, 2, 3, 4]) hp.fc.num_features = params.Discrete([32, 64, 128, 256]) hp.fc.num_layers = params.Integer(2, 7) hp.fc.num_groups = params.Discrete([8, 16, 32, 64]) hp.fc.num_blocks_per_residual = params.Integer(1, 5) hp.fc.num_blocks_per_dropout = params.Integer(1, 8) hp.fc.requires_grad = True hp.heads.num_features = params.Discrete([32, 64, 128, 256]) hp.heads.num_layers = params.Integer(2, 5) hp.heads.num_groups = params.Discrete([8, 16, 32, 64])
env = os.environ.copy() env['PROJECT_ID'] = GCLOUD_PROJECT_NAME env['IMAGE_URI'] = CONTAINER_IMAGE_URI env['BUCKET_NAME'] = GCLOUD_BUCKET_NAME # Create a Cloud AI Platform Hyperparameter Search object search = search.HyperparamSearchSpec( max_trials=10, max_parallel_trials=5, max_failed_trials=2, hyperparameter_metric_tag='val_acc', ) # Add parameter search ranges for this problem. my_param_ranges = train.MyParams( activation=params.Categorical(['relu', 'tanh']), num_layers=params.Integer(min_value=1, max_value=3), num_neurons=params.Discrete(np.logspace(2, 8, num=7, base=2)), dropout_rate=params.Double(min_value=-0.1, max_value=0.9), learning_rate=params.Discrete(np.logspace(-6, 2, 17, base=10)), batch_size=params.Integer(min_value=1, max_value=128), ) search.add_parameters(my_param_ranges) # Call a bash script to build a docker image for this repo, submit it to the docker registry defined in the script # and run a training job on the Cloud AI Platform using this container and these hyperparameter ranges. this_dir = Path(__file__).resolve().parent retcode = subprocess.call([this_dir / 'build_push.sh'], env=env) if retcode: raise ValueError(f"Got returncode: {retcode}")
def search_default(cls) -> "SlabNet.ModelParams": return cls( num_features=params.Categorical([16, 32, 64, 128, 256]), num_layers=params.Integer(1, 5), **FullyConv1Resnet.ModelParams.search_default().__dict__, )