Creates a hyperparameter tuning job using the create_hyperparameter_tuning_job method.
Code sample
Java
Before trying this sample, follow the Java setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Java API reference documentation .
To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .
import
com.google.cloud.aiplatform.v1. AcceleratorType
;
import
com.google.cloud.aiplatform.v1. ContainerSpec
;
import
com.google.cloud.aiplatform.v1. CustomJobSpec
;
import
com.google.cloud.aiplatform.v1. HyperparameterTuningJob
;
import
com.google.cloud.aiplatform.v1. JobServiceClient
;
import
com.google.cloud.aiplatform.v1. JobServiceSettings
;
import
com.google.cloud.aiplatform.v1. LocationName
;
import
com.google.cloud.aiplatform.v1. MachineSpec
;
import
com.google.cloud.aiplatform.v1. StudySpec
;
import
com.google.cloud.aiplatform.v1. WorkerPoolSpec
;
import
java.io.IOException
;
public
class
CreateHyperparameterTuningJobSample
{
public
static
void
main
(
String
[]
args
)
throws
IOException
{
// TODO(developer): Replace these variables before running the sample.
String
project
=
"PROJECT"
;
String
displayName
=
"DISPLAY_NAME"
;
String
containerImageUri
=
"CONTAINER_IMAGE_URI"
;
createHyperparameterTuningJobSample
(
project
,
displayName
,
containerImageUri
);
}
static
void
createHyperparameterTuningJobSample
(
String
project
,
String
displayName
,
String
containerImageUri
)
throws
IOException
{
JobServiceSettings
settings
=
JobServiceSettings
.
newBuilder
()
.
setEndpoint
(
"us-central1-aiplatform.googleapis.com:443"
)
.
build
();
String
location
=
"us-central1"
;
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try
(
JobServiceClient
client
=
JobServiceClient
.
create
(
settings
))
{
StudySpec
.
MetricSpec
metric0
=
StudySpec
.
MetricSpec
.
newBuilder
()
.
setMetricId
(
"accuracy"
)
.
setGoal
(
StudySpec
.
MetricSpec
.
GoalType
.
MAXIMIZE
)
.
build
();
StudySpec
.
ParameterSpec
.
DoubleValueSpec
doubleValueSpec
=
StudySpec
.
ParameterSpec
.
DoubleValueSpec
.
newBuilder
()
.
setMinValue
(
0.001
)
.
setMaxValue
(
0.1
)
.
build
();
StudySpec
.
ParameterSpec
parameter0
=
StudySpec
.
ParameterSpec
.
newBuilder
()
// Learning rate.
.
setParameterId
(
"lr"
)
.
setDoubleValueSpec
(
doubleValueSpec
)
.
build
();
StudySpec
studySpec
=
StudySpec
.
newBuilder
().
addMetrics
(
metric0
).
addParameters
(
parameter0
).
build
();
MachineSpec
machineSpec
=
MachineSpec
.
newBuilder
()
.
setMachineType
(
"n1-standard-4"
)
.
setAcceleratorType
(
AcceleratorType
.
NVIDIA_TESLA_T4
)
.
setAcceleratorCount
(
1
)
.
build
();
ContainerSpec
containerSpec
=
ContainerSpec
.
newBuilder
().
setImageUri
(
containerImageUri
).
build
();
WorkerPoolSpec
workerPoolSpec0
=
WorkerPoolSpec
.
newBuilder
()
.
setMachineSpec
(
machineSpec
)
.
setReplicaCount
(
1
)
.
setContainerSpec
(
containerSpec
)
.
build
();
CustomJobSpec
trialJobSpec
=
CustomJobSpec
.
newBuilder
().
addWorkerPoolSpecs
(
workerPoolSpec0
).
build
();
HyperparameterTuningJob
hyperparameterTuningJob
=
HyperparameterTuningJob
.
newBuilder
()
.
setDisplayName
(
displayName
)
.
setMaxTrialCount
(
2
)
.
setParallelTrialCount
(
1
)
.
setMaxFailedTrialCount
(
1
)
.
setStudySpec
(
studySpec
)
.
setTrialJobSpec
(
trialJobSpec
)
.
build
();
LocationName
parent
=
LocationName
.
of
(
project
,
location
);
HyperparameterTuningJob
response
=
client
.
createHyperparameterTuningJob
(
parent
,
hyperparameterTuningJob
);
System
.
out
.
format
(
"response: %s\n"
,
response
);
System
.
out
.
format
(
"Name: %s\n"
,
response
.
getName
());
}
}
}
Node.js
Before trying this sample, follow the Node.js setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Node.js API reference documentation .
To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .
/**
* TODO(developer): Uncomment these variables before running the sample.
* (Not necessary if passing values as arguments)
*/
/*
const displayName = 'YOUR HYPERPARAMETER TUNING JOB;
const containerImageUri = 'TUNING JOB CONTAINER URI;
const project = 'YOUR PROJECT ID';
const location = 'us-central1';
*/
// Imports the Google Cloud Pipeline Service Client library
const
{
JobServiceClient
}
=
require
(
' @google-cloud/aiplatform
'
);
// Specifies the location of the api endpoint
const
clientOptions
=
{
apiEndpoint
:
'us-central1-aiplatform.googleapis.com'
,
};
// Instantiates a client
const
jobServiceClient
=
new
JobServiceClient
(
clientOptions
);
async
function
createHyperParameterTuningJob
()
{
// Configure the parent resource
const
parent
=
`projects/
${
project
}
/locations/
${
location
}
`
;
// Create the hyperparameter tuning job configuration
const
hyperparameterTuningJob
=
{
displayName
,
maxTrialCount
:
2
,
parallelTrialCount
:
1
,
maxFailedTrialCount
:
1
,
studySpec
:
{
metrics
:
[
{
metricId
:
'accuracy'
,
goal
:
'MAXIMIZE'
,
},
],
parameters
:
[
{
parameterId
:
'lr'
,
doubleValueSpec
:
{
minValue
:
0.001
,
maxValue
:
0.1
,
},
},
],
},
trialJobSpec
:
{
workerPoolSpecs
:
[
{
machineSpec
:
{
machineType
:
'n1-standard-4'
,
acceleratorType
:
'NVIDIA_TESLA_T4'
,
acceleratorCount
:
1
,
},
replicaCount
:
1
,
containerSpec
:
{
imageUri
:
containerImageUri
,
command
:
[],
args
:
[],
},
},
],
},
};
const
[
response
]
=
await
jobServiceClient
.
createHyperparameterTuningJob
({
parent
,
hyperparameterTuningJob
,
});
console
.
log
(
'Create hyperparameter tuning job response:'
);
console
.
log
(
`\tDisplay name:
${
response
.
displayName
}
`
);
console
.
log
(
`\tTuning job resource name:
${
response
.
name
}
`
);
console
.
log
(
`\tJob status:
${
response
.
state
}
`
);
}
createHyperParameterTuningJob
();
Python
Before trying this sample, follow the Python setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Python API reference documentation .
To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .
from
google.cloud
import
aiplatform
def
create_hyperparameter_tuning_job_sample
(
project
:
str
,
display_name
:
str
,
container_image_uri
:
str
,
location
:
str
=
"us-central1"
,
api_endpoint
:
str
=
"us-central1-aiplatform.googleapis.com"
,
):
# The AI Platform services require regional API endpoints.
client_options
=
{
"api_endpoint"
:
api_endpoint
}
# Initialize client that will be used to create and send requests.
# This client only needs to be created once, and can be reused for multiple requests.
client
=
aiplatform
.
gapic
.
JobServiceClient
(
client_options
=
client_options
)
hyperparameter_tuning_job
=
{
"display_name"
:
display_name
,
"max_trial_count"
:
2
,
"parallel_trial_count"
:
1
,
"max_failed_trial_count"
:
1
,
"study_spec"
:
{
"metrics"
:
[
{
"metric_id"
:
"accuracy"
,
"goal"
:
aiplatform
.
gapic
.
StudySpec
.
MetricSpec
.
GoalType
.
MAXIMIZE
,
}
],
"parameters"
:
[
{
# Learning rate.
"parameter_id"
:
"lr"
,
"double_value_spec"
:
{
"min_value"
:
0.001
,
"max_value"
:
0.1
},
},
],
},
"trial_job_spec"
:
{
"worker_pool_specs"
:
[
{
"machine_spec"
:
{
"machine_type"
:
"n1-standard-4"
,
"accelerator_type"
:
aiplatform
.
gapic
.
AcceleratorType
.
NVIDIA_TESLA_K80
,
"accelerator_count"
:
1
,
},
"replica_count"
:
1
,
"container_spec"
:
{
"image_uri"
:
container_image_uri
,
"command"
:
[],
"args"
:
[],
},
}
]
},
}
parent
=
f
"projects/
{
project
}
/locations/
{
location
}
"
response
=
client
.
create_hyperparameter_tuning_job
(
parent
=
parent
,
hyperparameter_tuning_job
=
hyperparameter_tuning_job
)
print
(
"response:"
,
response
)
What's next
To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .