Skip to content

Commit

Permalink
feat: Migrate sample and sample tests - Batch 3 of 5 (#13)
Browse files Browse the repository at this point in the history
* chore: release 0.2.0

* Init samples and sample tests - Batch 3

* chore: release 0.2.0

* Address reviewer comments - 3 of 5

* Add two extra samples + tests

* Revert Changelog to pre-release

* Update tabular + GAPIC namespace (B3/5)

* Sync with private repo (3/5)

* Add UUID to export_model sample test

* remove unused variables

* add no-arg wrapper function to initialize user inputs

* pass environment variables for fixed resources

* refactor print statement

* add no-arg wrapper function to initialize user inputs

* add no-arg wrapper functions to all samples

* add no-arg wrapper function

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com>
Co-authored-by: Ariana Bray <aribray@google.com>
  • Loading branch information
4 people committed Nov 11, 2020
1 parent e1c3e50 commit efc405f
Show file tree
Hide file tree
Showing 34 changed files with 1,089 additions and 1 deletion.
6 changes: 6 additions & 0 deletions samples/cancel_training_pipeline_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@
# [START aiplatform_cancel_training_pipeline_sample]
from google.cloud import aiplatform

def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
training_pipeline_id = "YOUR-TRAINING_PIPELINE_ID"
cancel_training_pipeline_sample(project, training_pipeline_id)


def cancel_training_pipeline_sample(
project: str, training_pipeline_id: str, location: str = "us-central1"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@
from google.protobuf import json_format
from google.protobuf.struct_pb2 import Value

def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
model_name = "YOUR-MODEL-NAME"
gcs_source_uri = "YOUR-GCS-SOURCE-URI"
gcs_destination_output_uri_prefix = "YOUR-GCS-DESTINATION-OUTPUT-URI-PREFIX"
create_batch_prediction_job_video_classification_sample(project, display_name, model_name, gcs_source_uri, gcs_destination_output_uri_prefix)


def create_batch_prediction_job_video_classification_sample(
project: str,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@
from google.protobuf import json_format
from google.protobuf.struct_pb2 import Value

def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
model_name = "YOUR-MODEL-NAME"
gcs_source_uri = "YOUR-GCS-SOURCE-URI"
gcs_destination_output_uri_prefix = "YOUR-GCS-DESTINATION-OUTPUT-URI-PREFIX"
create_batch_prediction_job_video_object_tracking_sample(project, display_name, model_name, gcs_source_uri, gcs_destination_output_uri_prefix)


def create_batch_prediction_job_video_object_tracking_sample(
project: str,
Expand Down
64 changes: 64 additions & 0 deletions samples/create_custom_job_sample.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# [START aiplatform_create_custom_job_sample]
from google.cloud import aiplatform

def run_sample():
# TODO(dev): replace these variables to run the code
display_name = "YOUR-DISPLAY-NAME"
container_image_uri = "YOUR-CONTAINER-IMAGE-URI"
project = "YOUR-PROJECT"
create_custom_job_sample(display_name, container_image_uri, project)


def create_custom_job_sample(display_name: str, container_image_uri: str, project: str):
client_options = {"api_endpoint": "us-central1-aiplatform.googleapis.com"}
# 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)
location = "us-central1"
parent = f"projects/{project}/locations/{location}"
)
custom_job = {
"display_name": display_name,
"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": [],
},
}
]
},
}
response = client.create_custom_job(parent=parent, custom_job=custom_job)
print("response")
print(" name:", response.name)
print(" display_name:", response.display_name)
print(" state:", response.state)
print(" start_time:", response.start_time)
print(" end_time:", response.end_time)
print(" labels:", response.labels)


# [END aiplatform_create_custom_job_sample]
9 changes: 9 additions & 0 deletions samples/create_data_labeling_job_images_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@
from google.protobuf import json_format
from google.protobuf.struct_pb2 import Value

def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
dataset = "YOUR-DATASET"
instruction_uri = "YOUR-INSTRUCTION-URI"
annotation_spec = "YOUR-ANNOTATION-SPEC"
create_data_labeling_job_images_sample(project, display_name, dataset, instruction_uri, annotation_spec)


def create_data_labeling_job_images_sample(
project: str,
Expand Down
10 changes: 10 additions & 0 deletions samples/create_data_labeling_job_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@
from google.protobuf import json_format
from google.protobuf.struct_pb2 import Value

def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
dataset_name = "YOUR-DATASET-NAME"
instruction_uri = "YOUR-INSTRUCTION-URI"
inputs_schema_uri = "YOUR-INPUTS-SCHEMA-URI"
annotation_spec = "YOUR-ANNOTATION-SPEC"
create_data_labeling_job_sample(project, display_name, dataset_name, instruction_uri, inputs_schema_uri, annotation_spec)


def create_data_labeling_job_sample(
project: str,
Expand Down
10 changes: 10 additions & 0 deletions samples/create_data_labeling_job_video_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@
from google.protobuf.struct_pb2 import Value


def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
dataset = "YOUR-DATASET"
instruction_uri = "YOUR-INSTRUCTION-URI"
annotation_spec = "YOUR-ANNOTATION-SPEC"
create_data_labeling_job_video_sample(project, display_name, dataset, instruction_uri, annotation_spec)


def create_data_labeling_job_video_sample(
project: str,
display_name: str,
Expand Down
6 changes: 6 additions & 0 deletions samples/create_dataset_image_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@
# [START aiplatform_create_dataset_image_sample]
from google.cloud import aiplatform

def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
create_dataset_image_sample(project, display_name)


def create_dataset_image_sample(
project: str, display_name: str, location: str = "us-central1", timeout: int = 300
Expand Down
10 changes: 9 additions & 1 deletion samples/create_dataset_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,20 @@
from google.cloud import aiplatform


def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
metadata_schema_uri = "YOUR-METADATA-SCHEMA-URI"
create_dataset_sample(project, display_name, metadata_schema_uri)


def create_dataset_sample(
project: str,
display_name: str,
metadata_schema_uri: str,
location: str = "us-central1",
timeout: int = 300,
timeout: int = 300
):
client_options = {"api_endpoint": "us-central1-aiplatform.googleapis.com"}
# Initialize client that will be used to create and send requests.
Expand Down
8 changes: 8 additions & 0 deletions samples/create_dataset_tabular_bigquery_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@
from google.protobuf.struct_pb2 import Value


def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
bigquery_uri = "YOUR-BIGQUERY-URI"
create_dataset_tabular_bigquery_sample(project, display_name, bigquery_uri)


def create_dataset_tabular_bigquery_sample(
project: str,
display_name: str,
Expand Down
7 changes: 7 additions & 0 deletions samples/create_dataset_tabular_gcs_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@
from google.protobuf import json_format
from google.protobuf.struct_pb2 import Value

def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
gcs_uri = "YOUR-GCS-URI"
create_dataset_tabular_gcs_sample(project, display_name, gcs_uri)


def create_dataset_tabular_gcs_sample(
project: str,
Expand Down
7 changes: 7 additions & 0 deletions samples/create_dataset_text_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@
from google.cloud import aiplatform


def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
create_dataset_text_sample(project, display_name)


def create_dataset_text_sample(
project: str, display_name: str, location: str = "us-central1", timeout: int = 300
):
Expand Down
6 changes: 6 additions & 0 deletions samples/create_dataset_video_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@
# [START aiplatform_create_dataset_video_sample]
from google.cloud import aiplatform

def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT"
display_name = "YOUR-DISPLAY-NAME"
create_dataset_video_sample(project, display_name, location, timeout)


def create_dataset_video_sample(
project: str, display_name: str, location: str = "us-central1", timeout: int = 300
Expand Down
95 changes: 95 additions & 0 deletions samples/create_hyperparameter_tuning_job_sample.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# [START aiplatform_create_hyperparameter_tuning_job_sample]
from google.cloud import aiplatform


def run_sample():
# TODO(dev): replace these variables to run the code
display_name = "YOUR-DISPLAY-NAME"
container_image_uri = "YOUR-CONTAINER-IMAGE-URI"
project = "YOUR-PROJECT"
create_hyperparameter_tuning_job_sample(display_name, container_image_uri, project)


def create_hyperparameter_tuning_job_sample(
display_name: str, container_image_uri: str, project: str
):
client_options = {"api_endpoint": "us-central1-aiplatform.googleapis.com"}
# 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)
location = "us-central1"
parent = "projects/{project}/locations/{location}".format(
project=project, location=location
)
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": [],
},
}
]
},
}
response = client.create_hyperparameter_tuning_job(
parent=parent, hyperparameter_tuning_job=hyperparameter_tuning_job
)
print("response")
print(" name:", response.name)
print(" display_name:", response.display_name)
print(" max_trial_count:", response.max_trial_count)
print(" parallel_trial_count:", response.parallel_trial_count)
print(" max_failed_trial_count:", response.max_failed_trial_count)
print(" state:", response.state)
print(" start_time:", response.start_time)
print(" end_time:", response.end_time)
print(" labels:", response.labels)
study_spec = response.study_spec
trial_job_spec = response.trial_job_spec
trials = response.trials
error = response.error


# [END aiplatform_create_hyperparameter_tuning_job_sample]
47 changes: 47 additions & 0 deletions samples/export_model_sample.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# [START aiplatform_export_model_sample]
from google.cloud import aiplatform

def run_sample():
# TODO(dev): replace these variables to run the code
project = "YOUR-PROJECT-ID"
model_id = "YOUR-MODEL-ID"
gcs_destination_output_uri_prefix = "YOUR-GCS-URI-PREFIX"
export_model_sample(gcs_destination_output_uri_prefix, project, model_id)


def export_model_sample(
project: str,
model_id: str,
gcs_destination_output_uri_prefix: str,
location: str = "us-central1",
timeout: int = 300,
):
client_options = {"api_endpoint": "us-central1-aiplatform.googleapis.com"}
# 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.ModelServiceClient(client_options=client_options)
output_config = {
"artifact_destination": {"output_uri_prefix": gcs_destination_output_uri_prefix}
}
name = client.model_path(project=project, location=location, model=model_id)
response = client.export_model(name=name, output_config=output_config)
print("Long running operation:", response.operation.name)
export_model_response = response.result(timeout=timeout)
print("export_model_response:", export_model_response)


# [END aiplatform_export_model_sample]

0 comments on commit efc405f

Please sign in to comment.