Tune an Image Classification - TensorFlow model - Amazon SageMaker

Tune an Image Classification - TensorFlow model

Automatic model tuning, also known as hyperparameter tuning, finds the best version of a model by running many jobs that test a range of hyperparameters on your dataset. You choose the tunable hyperparameters, a range of values for each, and an objective metric. You choose the objective metric from the metrics that the algorithm computes. Automatic model tuning searches the hyperparameters chosen to find the combination of values that result in the model that optimizes the objective metric.

For more information about model tuning, see Perform Automatic Model Tuning with SageMaker.

Metrics computed by the Image Classification - TensorFlow algorithm

The image classification algorithm is a supervised algorithm. It reports an accuracy metric that is computed during training. When tuning the model, choose this metric as the objective metric.

Metric Name Description Optimization Direction
validation:accuracy

The ratio of the number of correct predictions to the total number of predictions made.

Maximize

Tunable Image Classification - TensorFlow hyperparameters

Tune an image classification model with the following hyperparameters. The hyperparameters that have the greatest impact on image classification objective metrics are: batch_size, learning_rate, and optimizer. Tune the optimizer-related hyperparameters, such as momentum, regularizers_l2, beta_1, beta_2, and eps based on the selected optimizer. For example, use beta_1 and beta_2 only when adam is the optimizer.

For more information about which hyperparameters are used for each optimizer, see Image Classification - TensorFlow Hyperparameters.

Parameter Name Parameter Type Recommended Ranges
batch_size

IntegerParameterRanges

MinValue: 8, MaxValue: 512

beta_1

ContinuousParameterRanges

MinValue: 1e-6, MaxValue: 0.999

beta_2

ContinuousParameterRanges

MinValue: 1e-6, MaxValue: 0.999

eps

ContinuousParameterRanges

MinValue: 1e-8, MaxValue: 1.0

learning_rate

ContinuousParameterRanges

MinValue: 1e-6, MaxValue: 0.5

momentum

ContinuousParameterRanges

MinValue: 0.0, MaxValue: 0.999

optimizer

CategoricalParameterRanges

['sgd', ‘adam’, ‘rmsprop’, 'nesterov', 'adagrad', 'adadelta']

regularizers_l2

ContinuousParameterRanges

MinValue: 0.0, MaxValue: 0.999

train_only_top_layer

ContinuousParameterRanges

['True', 'False']