From a81895202ee625e7d48974686a24046e1bfb4d39 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Fri, 11 Dec 2020 10:58:02 -0800 Subject: [PATCH 01/13] samples: adds custom mode, action recognition samples and tests --- samples/snippets/nbactions.xml | 19 ++ samples/snippets/pom.xml | 6 + ...reateBatchPredictionJobBigquerySample.java | 109 +++++++++++ .../CreateBatchPredictionJobSample.java | 123 ++++++++++++ ...ictionJobVideoActionRecognitionSample.java | 97 ++++++++++ ...teDataLabelingJobActiveLearningSample.java | 94 +++++++++ ...teDataLabelingJobSpecialistPoolSample.java | 100 ++++++++++ ...parameterTuningJobPythonPackageSample.java | 183 ++++++++++++++++++ .../CreateHyperparameterTuningJobSample.java | 106 ++++++++++ ...CreateTrainingPipelineCustomJobSample.java | 124 ++++++++++++ ...ineCustomTrainingManagedDatasetSample.java | 143 ++++++++++++++ ...gPipelineVideoActionRecognitionSample.java | 90 +++++++++ .../DeployModelCustomTrainedModelSample.java | 90 +++++++++ ...portModelVideoActionRecognitionSample.java | 79 ++++++++ .../GetHyperparameterTuningJobSample.java | 55 ++++++ ...valuationVideoActionRecognitionSample.java | 55 ++++++ ...mportDataVideoActionRecognitionSample.java | 81 ++++++++ ...eBatchPredictionJobBigquerySampleTest.java | 111 +++++++++++ .../CreateBatchPredictionJobSampleTest.java | 111 +++++++++++ ...onJobVideoActionRecognitionSampleTest.java | 109 +++++++++++ ...taLabelingJobActiveLearningSampleTest.java | 112 +++++++++++ ...taLabelingJobSpecialistPoolSampleTest.java | 116 +++++++++++ ...meterTuningJobPythonPackageSampleTest.java | 110 +++++++++++ ...eateHyperparameterTuningJobSampleTest.java | 109 +++++++++++ ...teTrainingPipelineCustomJobSampleTest.java | 110 +++++++++++ ...ustomTrainingManagedDatasetSampleTest.java | 115 +++++++++++ ...elineVideoActionRecognitionSampleTest.java | 112 +++++++++++ ...ployModelCustomTrainedModelSampleTest.java | 94 +++++++++ ...ModelVideoActionRecognitionSampleTest.java | 92 +++++++++ .../GetHyperparameterTuningJobSampleTest.java | 73 +++++++ ...ationVideoActionRecognitionSampleTest.java | 76 ++++++++ ...tDataVideoActionRecognitionSampleTest.java | 127 ++++++++++++ 32 files changed, 3131 insertions(+) create mode 100644 samples/snippets/nbactions.xml create mode 100644 samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java create mode 100644 samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomJobSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/DeployModelCustomTrainedModelSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/ExportModelVideoActionRecognitionSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/GetHyperparameterTuningJobSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/GetModelEvaluationVideoActionRecognitionSample.java create mode 100644 samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/GetModelEvaluationVideoActionRecognitionSampleTest.java create mode 100644 samples/snippets/src/test/java/aiplatform/ImportDataVideoActionRecognitionSampleTest.java diff --git a/samples/snippets/nbactions.xml b/samples/snippets/nbactions.xml new file mode 100644 index 000000000..1b4365b9f --- /dev/null +++ b/samples/snippets/nbactions.xml @@ -0,0 +1,19 @@ + + + + test.single + + * + + + test-compile + surefire:test + + + ${packageClassName} + 580378083368 + 8842430840248991744 + /Users/erschmid/Devtools/ucaip-samples-test.json + + + diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2b6f82157..d68ae66cb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -40,6 +40,12 @@ protobuf-java-util 4.0.0-rc-2 + + org.glassfish + javax.json + 1.1 + jar + junit junit diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java new file mode 100644 index 000000000..4d699ad25 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java @@ -0,0 +1,109 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_batch_prediction_job_bigquery_sample] +import com.google.cloud.aiplatform.v1beta1.BatchPredictionJob; +import com.google.cloud.aiplatform.v1beta1.BigQueryDestination; +import com.google.cloud.aiplatform.v1beta1.BigQuerySource; +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.protobuf.Value; +import com.google.protobuf.util.JsonFormat; +import java.io.IOException; +import javax.json.Json; +import javax.json.JsonObject; + +public class CreateBatchPredictionJobBigquerySample { + + 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 modelName = "MODEL_NAME"; + String instancesFormat = "INSTANCES_FORMAT"; + String bigquerySourceInputUri = "BIGQUERY_SOURCE_INPUT_URI"; + String predictionsFormat = "PREDICTIONS_FORMAT"; + String bigqueryDestinationOutputUri = "BIGQUERY_DESTINATION_OUTPUT_URI"; + createBatchPredictionJobBigquerySample( + project, + displayName, + modelName, + instancesFormat, + bigquerySourceInputUri, + predictionsFormat, + bigqueryDestinationOutputUri); + } + + static void createBatchPredictionJobBigquerySample( + String project, + String displayName, + String modelName, + String instancesFormat, + String bigquerySourceInputUri, + String predictionsFormat, + String bigqueryDestinationOutputUri) + 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)) { + JsonObject jsonModelParameters = Json.createObjectBuilder().build(); + Value.Builder modelParametersBuilder = Value.newBuilder(); + JsonFormat.parser().merge(jsonModelParameters.toString(), modelParametersBuilder); + Value modelParameters = modelParametersBuilder.build(); + BigQuerySource bigquerySource = + BigQuerySource.newBuilder().setInputUri(bigquerySourceInputUri).build(); + BatchPredictionJob.InputConfig inputConfig = + BatchPredictionJob.InputConfig.newBuilder() + .setInstancesFormat(instancesFormat) + .setBigquerySource(bigquerySource) + .build(); + BigQueryDestination bigqueryDestination = + BigQueryDestination.newBuilder().setOutputUri(bigqueryDestinationOutputUri).build(); + BatchPredictionJob.OutputConfig outputConfig = + BatchPredictionJob.OutputConfig.newBuilder() + .setPredictionsFormat(predictionsFormat) + .setBigqueryDestination(bigqueryDestination) + .build(); + BatchPredictionJob batchPredictionJob = + BatchPredictionJob.newBuilder() + .setDisplayName(displayName) + // Format: 'projects/{project}/locations/{location}/models/{model_id}' + .setModel(modelName) + .setModelParameters(modelParameters) + .setInputConfig(inputConfig) + .setOutputConfig(outputConfig) + // optional + .setGenerateExplanation(true) + .build(); + LocationName parent = LocationName.of(project, location); + BatchPredictionJob response = client.createBatchPredictionJob(parent, batchPredictionJob); + System.out.format("response: %s\n", response); + System.out.format("\tName: %s\n", response.getName()); + } + } +} + +// [END aiplatform_create_batch_prediction_job_bigquery_sample] diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java new file mode 100644 index 000000000..ae03d2be4 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java @@ -0,0 +1,123 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_batch_prediction_job_sample] +import com.google.cloud.aiplatform.v1beta1.AcceleratorType; +import com.google.cloud.aiplatform.v1beta1.BatchDedicatedResources; +import com.google.cloud.aiplatform.v1beta1.BatchPredictionJob; +import com.google.cloud.aiplatform.v1beta1.GcsDestination; +import com.google.cloud.aiplatform.v1beta1.GcsSource; +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.cloud.aiplatform.v1beta1.MachineSpec; +import com.google.protobuf.Value; +import com.google.protobuf.util.JsonFormat; +import java.io.IOException; +import javax.json.Json; +import javax.json.JsonObject; + +public class CreateBatchPredictionJobSample { + + 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 modelName = "MODEL_NAME"; + String instancesFormat = "INSTANCES_FORMAT"; + String gcsSourceUri = "GCS_SOURCE_URI"; + String predictionsFormat = "PREDICTIONS_FORMAT"; + String gcsDestinationOutputUriPrefix = "GCS_DESTINATION_OUTPUT_URI_PREFIX"; + createBatchPredictionJobSample( + project, + displayName, + modelName, + instancesFormat, + gcsSourceUri, + predictionsFormat, + gcsDestinationOutputUriPrefix); + } + + static void createBatchPredictionJobSample( + String project, + String displayName, + String modelName, + String instancesFormat, + String gcsSourceUri, + String predictionsFormat, + String gcsDestinationOutputUriPrefix) + 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)) { + JsonObject jsonModelParameters = Json.createObjectBuilder().build(); + Value.Builder modelParametersBuilder = Value.newBuilder(); + JsonFormat.parser().merge(jsonModelParameters.toString(), modelParametersBuilder); + Value modelParameters = modelParametersBuilder.build(); + GcsSource gcsSource = GcsSource.newBuilder().addUris(gcsSourceUri).build(); + BatchPredictionJob.InputConfig inputConfig = + BatchPredictionJob.InputConfig.newBuilder() + .setInstancesFormat(instancesFormat) + .setGcsSource(gcsSource) + .build(); + GcsDestination gcsDestination = + GcsDestination.newBuilder().setOutputUriPrefix(gcsDestinationOutputUriPrefix).build(); + BatchPredictionJob.OutputConfig outputConfig = + BatchPredictionJob.OutputConfig.newBuilder() + .setPredictionsFormat(predictionsFormat) + .setGcsDestination(gcsDestination) + .build(); + MachineSpec machineSpec = + MachineSpec.newBuilder() + .setMachineType("n1-standard-2") + .setAcceleratorType(AcceleratorType.NVIDIA_TESLA_K80) + .setAcceleratorCount(1) + .build(); + BatchDedicatedResources dedicatedResources = + BatchDedicatedResources.newBuilder() + .setMachineSpec(machineSpec) + .setStartingReplicaCount(1) + .setMaxReplicaCount(1) + .build(); + BatchPredictionJob batchPredictionJob = + BatchPredictionJob.newBuilder() + .setDisplayName(displayName) + // Format: 'projects/{project}/locations/{location}/models/{model_id}' + .setModel(modelName) + .setModelParameters(modelParameters) + .setInputConfig(inputConfig) + .setOutputConfig(outputConfig) + .setDedicatedResources(dedicatedResources) + .build(); + LocationName parent = LocationName.of(project, location); + BatchPredictionJob response = client.createBatchPredictionJob(parent, batchPredictionJob); + System.out.format("response: %s\n", response); + System.out.format("\tName: %s\n", response.getName()); + } + } +} + +// [END aiplatform_create_batch_prediction_job_sample] + diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java new file mode 100644 index 000000000..f716c0255 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java @@ -0,0 +1,97 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_batch_prediction_job_video_action_recognition_sample] +import com.google.cloud.aiplatform.v1beta1.BatchPredictionJob; +import com.google.cloud.aiplatform.v1beta1.GcsDestination; +import com.google.cloud.aiplatform.v1beta1.GcsSource; +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.protobuf.Value; +import com.google.protobuf.util.JsonFormat; +import java.io.IOException; +import javax.json.Json; +import javax.json.JsonObject; + +public class CreateBatchPredictionJobVideoActionRecognitionSample { + + 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 model = "MODEL"; + String gcsSourceUri = "GCS_SOURCE_URI"; + String gcsDestinationOutputUriPrefix = "GCS_DESTINATION_OUTPUT_URI_PREFIX"; + createBatchPredictionJobVideoActionRecognitionSample( + project, displayName, model, gcsSourceUri, gcsDestinationOutputUriPrefix); + } + + static void createBatchPredictionJobVideoActionRecognitionSample( + String project, + String displayName, + String model, + String gcsSourceUri, + String gcsDestinationOutputUriPrefix) + 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)) { + JsonObject jsonModelParameters = + Json.createObjectBuilder().add("confidenceThreshold", 0.5).build(); + Value.Builder modelParametersBuilder = Value.newBuilder(); + JsonFormat.parser().merge(jsonModelParameters.toString(), modelParametersBuilder); + Value modelParameters = modelParametersBuilder.build(); + GcsSource gcsSource = GcsSource.newBuilder().addUris(gcsSourceUri).build(); + BatchPredictionJob.InputConfig inputConfig = + BatchPredictionJob.InputConfig.newBuilder() + .setInstancesFormat("jsonl") + .setGcsSource(gcsSource) + .build(); + GcsDestination gcsDestination = + GcsDestination.newBuilder().setOutputUriPrefix(gcsDestinationOutputUriPrefix).build(); + BatchPredictionJob.OutputConfig outputConfig = + BatchPredictionJob.OutputConfig.newBuilder() + .setPredictionsFormat("jsonl") + .setGcsDestination(gcsDestination) + .build(); + BatchPredictionJob batchPredictionJob = + BatchPredictionJob.newBuilder() + .setDisplayName(displayName) + // Format: 'projects/{project}/locations/{location}/models/{model_id}' + .setModel(model) + .setModelParameters(modelParameters) + .setInputConfig(inputConfig) + .setOutputConfig(outputConfig) + .build(); + LocationName parent = LocationName.of(project, location); + BatchPredictionJob response = client.createBatchPredictionJob(parent, batchPredictionJob); + System.out.format("response: %s\n", response); + System.out.format("\tName: %s\n", response.getName()); + } + } +} + +// [END aiplatform_create_batch_prediction_job_video_action_recognition_sample] diff --git a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java new file mode 100644 index 000000000..053b0aeb2 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java @@ -0,0 +1,94 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_data_labeling_job_active_learning_sample] +import com.google.cloud.aiplatform.v1beta1.ActiveLearningConfig; +import com.google.cloud.aiplatform.v1beta1.DataLabelingJob; +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.protobuf.Value; +import com.google.protobuf.util.JsonFormat; +import java.io.IOException; +import javax.json.Json; +import javax.json.JsonArray; +import javax.json.JsonObject; + +public class CreateDataLabelingJobActiveLearningSample { + + 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 dataset = "DATASET"; + String instructionUri = "INSTRUCTION_URI"; + String inputsSchemaUri = "INPUTS_SCHEMA_URI"; + String annotationSpec = "ANNOTATION_SPEC"; + createDataLabelingJobActiveLearningSample( + project, displayName, dataset, instructionUri, inputsSchemaUri, annotationSpec); + } + + static void createDataLabelingJobActiveLearningSample( + String project, + String displayName, + String dataset, + String instructionUri, + String inputsSchemaUri, + String annotationSpec) + 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)) { + JsonArray jsonAnnotationSpecs = Json.createArrayBuilder().add(annotationSpec).build(); + JsonObject jsonInputs = + Json.createObjectBuilder().add("annotation_specs", jsonAnnotationSpecs).build(); + Value.Builder inputsBuilder = Value.newBuilder(); + JsonFormat.parser().merge(jsonInputs.toString(), inputsBuilder); + Value inputs = inputsBuilder.build(); + ActiveLearningConfig activeLearningConfig = + ActiveLearningConfig.newBuilder().setMaxDataItemCount(1).build(); + DataLabelingJob dataLabelingJob = + DataLabelingJob.newBuilder() + .setDisplayName(displayName) + // Full resource name: projects/{project}/locations/{location}/datasets/{dataset_id} + .addDatasets(dataset) + .setLabelerCount(1) + .setInstructionUri(instructionUri) + .setInputsSchemaUri(inputsSchemaUri) + .setInputs(inputs) + .putAnnotationLabels( + "aiplatform.googleapis.com/annotation_set_name", + "data_labeling_job_active_learning") + .setActiveLearningConfig(activeLearningConfig) + .build(); + LocationName parent = LocationName.of(project, location); + DataLabelingJob response = client.createDataLabelingJob(parent, dataLabelingJob); + System.out.format("response: %s\n", response); + System.out.format("Name: %s\n", response.getName()); + } + } +} + +// [END aiplatform_create_data_labeling_job_active_learning_sample] diff --git a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java new file mode 100644 index 000000000..44d20cf09 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java @@ -0,0 +1,100 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_data_labeling_job_specialist_pool_sample] +import com.google.cloud.aiplatform.v1beta1.DataLabelingJob; +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.protobuf.Value; +import com.google.protobuf.util.JsonFormat; +import java.io.IOException; +import javax.json.Json; +import javax.json.JsonArray; +import javax.json.JsonObject; + +public class CreateDataLabelingJobSpecialistPoolSample { + + 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 dataset = "DATASET"; + String specialistPool = "SPECIALIST_POOL"; + String instructionUri = "INSTRUCTION_URI"; + String inputsSchemaUri = "INPUTS_SCHEMA_URI"; + String annotationSpec = "ANNOTATION_SPEC"; + createDataLabelingJobSpecialistPoolSample( + project, + displayName, + dataset, + specialistPool, + instructionUri, + inputsSchemaUri, + annotationSpec); + } + + static void createDataLabelingJobSpecialistPoolSample( + String project, + String displayName, + String dataset, + String specialistPool, + String instructionUri, + String inputsSchemaUri, + String annotationSpec) + 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)) { + JsonArray jsonAnnotationSpecs = Json.createArrayBuilder().add(annotationSpec).build(); + JsonObject jsonInputs = + Json.createObjectBuilder().add("annotation_specs", jsonAnnotationSpecs).build(); + Value.Builder inputsBuilder = Value.newBuilder(); + JsonFormat.parser().merge(jsonInputs.toString(), inputsBuilder); + Value inputs = inputsBuilder.build(); + DataLabelingJob dataLabelingJob = + DataLabelingJob.newBuilder() + .setDisplayName(displayName) + // Full resource name: projects/{project}/locations/{location}/datasets/{dataset_id} + .addDatasets(dataset) + .setLabelerCount(1) + .setInstructionUri(instructionUri) + .setInputsSchemaUri(inputsSchemaUri) + .setInputs(inputs) + .putAnnotationLabels( + "aiplatform.googleapis.com/annotation_set_name", + "data_labeling_job_specialist_pool") + // Full resource name: + // projects/{project}/locations/{location}/specialistPools/{specialist_pool_id} + .addSpecialistPools(specialistPool) + .build(); + LocationName parent = LocationName.of(project, location); + DataLabelingJob response = client.createDataLabelingJob(parent, dataLabelingJob); + System.out.format("response: %s\n", response); + } + } +} + +// [END aiplatform_create_data_labeling_job_specialist_pool_sample] diff --git a/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java new file mode 100644 index 000000000..0b8b2641d --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java @@ -0,0 +1,183 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_hyperparameter_tuning_job_python_package_sample] +import com.google.cloud.aiplatform.v1beta1.AcceleratorType; +import com.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType; +import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec; +import com.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec; +//import com.google.cloud.aiplatform.v1beta1.ClassOfConditionalParameterDecay; +//import com.google.cloud.aiplatform.v1beta1.ClassOfConditionalParameterLearningRate; +//import com.google.cloud.aiplatform.v1beta1.ClassOfDiscreteValueSpec; +//import com.google.cloud.aiplatform.v1beta1.ClassOfDoubleValueSpec; +//import com.google.cloud.aiplatform.v1beta1.ClassOfMetric; +//import com.google.cloud.aiplatform.v1beta1.ClassOfParameter; +//import com.google.cloud.aiplatform.v1beta1.ClassOfParameterSpec; +//import com.google.cloud.aiplatform.v1beta1.ClassOfParentDiscreteValues; +import com.google.cloud.aiplatform.v1beta1.CustomJobSpec; +import com.google.cloud.aiplatform.v1beta1.HyperparameterTuningJob; +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.cloud.aiplatform.v1beta1.MachineSpec; +import com.google.cloud.aiplatform.v1beta1.PythonPackageSpec; +import com.google.cloud.aiplatform.v1beta1.StudySpec; +import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec; +import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition; +import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec; +import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec; +import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType; +import com.google.cloud.aiplatform.v1beta1.WorkerPoolSpec; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; + +public class CreateHyperparameterTuningJobPythonPackageSample { + + 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 executorImageUri = "EXECUTOR_IMAGE_URI"; + String packageUri = "PACKAGE_URI"; + String pythonModule = "PYTHON_MODULE"; + createHyperparameterTuningJobPythonPackageSample( + project, displayName, executorImageUri, packageUri, pythonModule); + } + + static void createHyperparameterTuningJobPythonPackageSample( + String project, + String displayName, + String executorImageUri, + String packageUri, + String pythonModule) + 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)) { + // study spec + MetricSpec metric = MetricSpec.newBuilder() + .setMetricId("val_rmse") + .setGoal(GoalType.MINIMIZE) + .build(); + + // decay + DoubleValueSpec doubleValueSpec = DoubleValueSpec.newBuilder() + .setMinValue(1e-07) + .setMaxValue(1) + .build(); + ParameterSpec parameterDecaySpec = ParameterSpec.newBuilder() + .setParameterId("decay") + .setDoubleValueSpec(doubleValueSpec) + .setScaleType(ScaleType.UNIT_LINEAR_SCALE) + .build(); + Double decayValues[] = {32.0, 64.0}; + DiscreteValueCondition discreteValueDecay = DiscreteValueCondition.newBuilder() + .addAllValues(Arrays.asList(decayValues)) + .build(); + ConditionalParameterSpec conditionalParameterDecay = ConditionalParameterSpec.newBuilder() + .setParameterSpec(parameterDecaySpec) + .setParentDiscreteValues(discreteValueDecay) + .build(); + + // learning rate + ParameterSpec parameterLearningSpec = ParameterSpec.newBuilder() + .setParameterId("learning_rate") + .setDoubleValueSpec(doubleValueSpec) // Use the same min/max as for decay + .setScaleType(ScaleType.UNIT_LINEAR_SCALE) + .build(); + + Double learningRateValues[] = {4.0, 8.0, 16.0}; + DiscreteValueCondition discreteValueLearning = DiscreteValueCondition.newBuilder() + .addAllValues(Arrays.asList(learningRateValues)) + .build(); + ConditionalParameterSpec conditionalParameterLearning = ConditionalParameterSpec.newBuilder() + .setParameterSpec(parameterLearningSpec) + .setParentDiscreteValues(discreteValueLearning) + .build(); + + // batch size + Double batchSizeValues[] = {4.0, 8.0, 16.0, 32.0, 64.0, 128.0}; + + DiscreteValueSpec discreteValueSpec = DiscreteValueSpec.newBuilder() + .addAllValues(Arrays.asList(batchSizeValues)) + .build(); + ParameterSpec parameter = ParameterSpec.newBuilder() + .setParameterId("batch_size") + .setDiscreteValueSpec(discreteValueSpec) + .setScaleType(ScaleType.UNIT_LINEAR_SCALE) + .addConditionalParameterSpecs(conditionalParameterDecay) + .addConditionalParameterSpecs(conditionalParameterLearning) + .build(); + + // trial_job_spec + MachineSpec machineSpec = + MachineSpec.newBuilder() + .setMachineType("n1-standard-4") + .setAcceleratorType(AcceleratorType.NVIDIA_TESLA_K80) + .setAcceleratorCount(1) + .build(); + + PythonPackageSpec pythonPackageSpec = + PythonPackageSpec.newBuilder() + .setExecutorImageUri(executorImageUri) + .addPackageUris(packageUri) + .setPythonModule(pythonModule) + .build(); + + WorkerPoolSpec workerPoolSpec = + WorkerPoolSpec.newBuilder() + .setMachineSpec(machineSpec) + .setReplicaCount(1) + .setPythonPackageSpec(pythonPackageSpec) + .build(); + + StudySpec studySpec = + StudySpec.newBuilder() + .addMetrics(metric) + .addParameters(parameter) + .setAlgorithm(StudySpec.Algorithm.RANDOM_SEARCH) + .build(); + CustomJobSpec trialJobSpec = + CustomJobSpec.newBuilder().addWorkerPoolSpecs(workerPoolSpec).build(); + // hyperparameter_tuning_job + HyperparameterTuningJob hyperparameterTuningJob = + HyperparameterTuningJob.newBuilder() + .setDisplayName(displayName) + .setMaxTrialCount(4) + .setParallelTrialCount(2) + .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()); + } + } +} + +// [END aiplatform_create_hyperparameter_tuning_job_python_package_sample] diff --git a/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobSample.java b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobSample.java new file mode 100644 index 000000000..37e66d512 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobSample.java @@ -0,0 +1,106 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_hyperparameter_tuning_job_sample] +import com.google.cloud.aiplatform.v1beta1.AcceleratorType; +import com.google.cloud.aiplatform.v1beta1.ContainerSpec; +import com.google.cloud.aiplatform.v1beta1.CustomJobSpec; +import com.google.cloud.aiplatform.v1beta1.HyperparameterTuningJob; +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.cloud.aiplatform.v1beta1.MachineSpec; +import com.google.cloud.aiplatform.v1beta1.StudySpec; +import com.google.cloud.aiplatform.v1beta1.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_K80) + .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()); + } + } +} + +// [END aiplatform_create_hyperparameter_tuning_job_sample] diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomJobSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomJobSample.java new file mode 100644 index 000000000..552f163d3 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomJobSample.java @@ -0,0 +1,124 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_training_pipeline_custom_job_sample] +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.cloud.aiplatform.v1beta1.Model; +import com.google.cloud.aiplatform.v1beta1.ModelContainerSpec; +import com.google.cloud.aiplatform.v1beta1.PipelineServiceClient; +import com.google.cloud.aiplatform.v1beta1.PipelineServiceSettings; +import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; +import com.google.protobuf.Value; +import com.google.protobuf.util.JsonFormat; +import java.io.IOException; +import javax.json.Json; +import javax.json.JsonArray; +import javax.json.JsonObject; + +public class CreateTrainingPipelineCustomJobSample { + + 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 modelDisplayName = "MODEL_DISPLAY_NAME"; + String containerImageUri = "CONTAINER_IMAGE_URI"; + String baseOutputDirectoryPrefix = "BASE_OUTPUT_DIRECTORY_PREFIX"; + createTrainingPipelineCustomJobSample( + project, displayName, modelDisplayName, containerImageUri, baseOutputDirectoryPrefix); + } + + static void createTrainingPipelineCustomJobSample( + String project, + String displayName, + String modelDisplayName, + String containerImageUri, + String baseOutputDirectoryPrefix) + throws IOException { + PipelineServiceSettings settings = + PipelineServiceSettings.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 (PipelineServiceClient client = PipelineServiceClient.create(settings)) { + JsonObject jsonMachineSpec = + Json.createObjectBuilder().add("machineType", "n1-standard-4").build(); + JsonArray jsonArgs = + Json.createArrayBuilder() + // AIP_MODEL_DIR is set by the service according to baseOutputDirectory. + .add("--model_dir=$(AIP_MODEL_DIR)") + .build(); + JsonObject jsonContainerSpec = + Json.createObjectBuilder() + // A working docker image can be found at + // gs://cloud-samples-data/ai-platform/mnist_tfrecord/custom_job + .add("imageUri", containerImageUri) + .add("args", jsonArgs) + .build(); + JsonObject jsonJsonWorkerPoolSpec0 = + Json.createObjectBuilder() + .add("replicaCount", 1) + .add("machineSpec", jsonMachineSpec) + .add("containerSpec", jsonContainerSpec) + .build(); + JsonArray jsonWorkerPoolSpecs = + Json.createArrayBuilder().add(jsonJsonWorkerPoolSpec0).build(); + JsonObject jsonBaseOutputDirectory = + Json.createObjectBuilder() + // The GCS location for outputs must be accessible by the project's AI Platform + // service account. + .add("output_uri_prefix", baseOutputDirectoryPrefix) + .build(); + JsonObject jsonTrainingTaskInputs = + Json.createObjectBuilder() + .add("workerPoolSpecs", jsonWorkerPoolSpecs) + .add("baseOutputDirectory", jsonBaseOutputDirectory) + .build(); + Value.Builder trainingTaskInputsBuilder = Value.newBuilder(); + JsonFormat.parser().merge(jsonTrainingTaskInputs.toString(), trainingTaskInputsBuilder); + Value trainingTaskInputs = trainingTaskInputsBuilder.build(); + String trainingTaskDefinition = + "gs://google-cloud-aiplatform/schema/trainingjob/definition/custom_task_1.0.0.yaml"; + String imageUri = "gcr.io/cloud-aiplatform/prediction/tf-cpu.1-15:latest"; + ModelContainerSpec containerSpec = + ModelContainerSpec.newBuilder().setImageUri(imageUri).build(); + Model modelToUpload = + Model.newBuilder() + .setDisplayName(modelDisplayName) + .setContainerSpec(containerSpec) + .build(); + TrainingPipeline trainingPipeline = + TrainingPipeline.newBuilder() + .setDisplayName(displayName) + .setTrainingTaskDefinition(trainingTaskDefinition) + .setTrainingTaskInputs(trainingTaskInputs) + .setModelToUpload(modelToUpload) + .build(); + LocationName parent = LocationName.of(project, location); + TrainingPipeline response = client.createTrainingPipeline(parent, trainingPipeline); + System.out.format("response: %s\n", response); + System.out.format("Name: %s\n", response.getName()); + } + } +} + +// [END aiplatform_create_training_pipeline_custom_job_sample] diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java new file mode 100644 index 000000000..6528c6314 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java @@ -0,0 +1,143 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_training_pipeline_custom_training_managed_dataset_sample] +import com.google.cloud.aiplatform.v1beta1.GcsDestination; +import com.google.cloud.aiplatform.v1beta1.InputDataConfig; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.cloud.aiplatform.v1beta1.Model; +import com.google.cloud.aiplatform.v1beta1.ModelContainerSpec; +import com.google.cloud.aiplatform.v1beta1.PipelineServiceClient; +import com.google.cloud.aiplatform.v1beta1.PipelineServiceSettings; +import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; +import com.google.protobuf.Value; +import com.google.protobuf.util.JsonFormat; +import java.io.IOException; +import javax.json.Json; +import javax.json.JsonArray; +import javax.json.JsonObject; + +public class CreateTrainingPipelineCustomTrainingManagedDatasetSample { + + 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 modelDisplayName = "MODEL_DISPLAY_NAME"; + String datasetId = "DATASET_ID"; + String annotationSchemaUri = "ANNOTATION_SCHEMA_URI"; + String trainingContainerSpecImageUri = "TRAINING_CONTAINER_SPEC_IMAGE_URI"; + String modelContainerSpecImageUri = "MODEL_CONTAINER_SPEC_IMAGE_URI"; + String baseOutputUriPrefix = "BASE_OUTPUT_URI_PREFIX"; + createTrainingPipelineCustomTrainingManagedDatasetSample( + project, + displayName, + modelDisplayName, + datasetId, + annotationSchemaUri, + trainingContainerSpecImageUri, + modelContainerSpecImageUri, + baseOutputUriPrefix); + } + + static void createTrainingPipelineCustomTrainingManagedDatasetSample( + String project, + String displayName, + String modelDisplayName, + String datasetId, + String annotationSchemaUri, + String trainingContainerSpecImageUri, + String modelContainerSpecImageUri, + String baseOutputUriPrefix) + throws IOException { + PipelineServiceSettings settings = + PipelineServiceSettings.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 (PipelineServiceClient client = PipelineServiceClient.create(settings)) { + GcsDestination gcsDestination = + GcsDestination.newBuilder().setOutputUriPrefix(baseOutputUriPrefix).build(); + // input_data_config + InputDataConfig inputDataConfig = + InputDataConfig.newBuilder() + .setDatasetId(datasetId) + .setAnnotationSchemaUri(annotationSchemaUri) + .setGcsDestination(gcsDestination) + .build(); + // training_task_definition + String customTaskDefinition = + "gs://google-cloud-aiplatform/schema/trainingjob/definition/custom_task_1.0.0.yaml"; + JsonArray jsonArgs = Json.createArrayBuilder().add("--model-dir=$(AIP_MODEL_DIR)").build(); + // training_task_inputs + JsonObject jsonTrainingContainerSpec = + Json.createObjectBuilder() + .add("imageUri", trainingContainerSpecImageUri) + // AIP_MODEL_DIR is set by the service according to baseOutputDirectory. + .add("args", jsonArgs) + .build(); + JsonObject jsonMachineSpec = + Json.createObjectBuilder().add("machineType", "n1-standard-8").build(); + JsonObject jsonTrainingWorkerPoolSpec = + Json.createObjectBuilder() + .add("replicaCount", 1) + .add("machineSpec", jsonMachineSpec) + .add("containerSpec", jsonTrainingContainerSpec) + .build(); + JsonArray jsonWorkerPoolSpecs = Json.createArrayBuilder() + .add(jsonTrainingWorkerPoolSpec) + .build(); + JsonObject jsonBaseOutputDirectory = + Json.createObjectBuilder().add("outputUriPrefix", baseOutputUriPrefix).build(); + JsonObject jsonTrainingTaskInputs = + Json.createObjectBuilder() + .add("workerPoolSpecs", jsonWorkerPoolSpecs) + .add("baseOutputDirectory", jsonBaseOutputDirectory) + .build(); + Value.Builder trainingTaskInputsBuilder = Value.newBuilder(); + JsonFormat.parser().merge(jsonTrainingTaskInputs.toString(), trainingTaskInputsBuilder); + Value trainingTaskInputs = trainingTaskInputsBuilder.build(); + // model_to_upload + ModelContainerSpec modelContainerSpec = + ModelContainerSpec.newBuilder().setImageUri(modelContainerSpecImageUri).build(); + Model model = + Model.newBuilder() + .setDisplayName(modelDisplayName) + .setContainerSpec(modelContainerSpec) + .build(); + TrainingPipeline trainingPipeline = + TrainingPipeline.newBuilder() + .setDisplayName(displayName) + .setInputDataConfig(inputDataConfig) + .setTrainingTaskDefinition(customTaskDefinition) + .setTrainingTaskInputs(trainingTaskInputs) + .setModelToUpload(model) + .build(); + LocationName parent = LocationName.of(project, location); + TrainingPipeline response = client.createTrainingPipeline(parent, trainingPipeline); + System.out.format("response: %s\n", response); + System.out.format("Name: %s\n", response.getName()); + } + } +} + +// [END aiplatform_create_training_pipeline_custom_training_managed_dataset_sample] diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java new file mode 100644 index 000000000..c6019e161 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java @@ -0,0 +1,90 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_create_training_pipeline_video_action_recognition_sample] +import com.google.cloud.aiplatform.v1beta1.InputDataConfig; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.cloud.aiplatform.v1beta1.Model; +import com.google.cloud.aiplatform.v1beta1.PipelineServiceClient; +import com.google.cloud.aiplatform.v1beta1.PipelineServiceSettings; +import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; +import com.google.protobuf.Value; +import com.google.protobuf.util.JsonFormat; +import java.io.IOException; +import javax.json.Json; +import javax.json.JsonObject; + +public class CreateTrainingPipelineVideoActionRecognitionSample { + + 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 datasetId = "DATASET_ID"; + String modelDisplayName = "MODEL_DISPLAY_NAME"; + String modelType = "MODEL_TYPE"; + createTrainingPipelineVideoActionRecognitionSample( + project, displayName, datasetId, modelDisplayName, modelType); + } + + static void createTrainingPipelineVideoActionRecognitionSample( + String project, + String displayName, + String datasetId, + String modelDisplayName, + String modelType) + throws IOException { + PipelineServiceSettings settings = + PipelineServiceSettings.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 (PipelineServiceClient client = PipelineServiceClient.create(settings)) { + JsonObject jsonTrainingTaskInputs = + Json.createObjectBuilder() + // modelType can be either 'CLOUD' or 'MOBILE_VERSATILE_1' + .add("modelType", modelType) + .build(); + Value.Builder trainingTaskInputsBuilder = Value.newBuilder(); + JsonFormat.parser().merge(jsonTrainingTaskInputs.toString(), trainingTaskInputsBuilder); + Value trainingTaskInputs = trainingTaskInputsBuilder.build(); + InputDataConfig inputDataConfig = + InputDataConfig.newBuilder().setDatasetId(datasetId).build(); + Model modelToUpload = Model.newBuilder().setDisplayName(modelDisplayName).build(); + TrainingPipeline trainingPipeline = + TrainingPipeline.newBuilder() + .setDisplayName(displayName) + .setTrainingTaskDefinition( + "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_action_recognition_1.0.0.yaml") + .setTrainingTaskInputs(trainingTaskInputs) + .setInputDataConfig(inputDataConfig) + .setModelToUpload(modelToUpload) + .build(); + LocationName parent = LocationName.of(project, location); + TrainingPipeline response = client.createTrainingPipeline(parent, trainingPipeline); + System.out.format("response: %s\n", response); + System.out.format("Name: %s\n", response.getName()); + } + } +} + +// [END aiplatform_create_training_pipeline_video_action_recognition_sample] diff --git a/samples/snippets/src/main/java/aiplatform/DeployModelCustomTrainedModelSample.java b/samples/snippets/src/main/java/aiplatform/DeployModelCustomTrainedModelSample.java new file mode 100644 index 000000000..e839d2615 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/DeployModelCustomTrainedModelSample.java @@ -0,0 +1,90 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_deploy_model_custom_trained_model_sample] +import com.google.api.gax.longrunning.OperationFuture; +import com.google.cloud.aiplatform.v1beta1.DedicatedResources; +import com.google.cloud.aiplatform.v1beta1.DeployModelOperationMetadata; +import com.google.cloud.aiplatform.v1beta1.DeployModelResponse; +import com.google.cloud.aiplatform.v1beta1.DeployedModel; +import com.google.cloud.aiplatform.v1beta1.EndpointName; +import com.google.cloud.aiplatform.v1beta1.EndpointServiceClient; +import com.google.cloud.aiplatform.v1beta1.EndpointServiceSettings; +import com.google.cloud.aiplatform.v1beta1.MachineSpec; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ExecutionException; + +public class DeployModelCustomTrainedModelSample { + + public static void main(String[] args) + throws IOException, ExecutionException, InterruptedException { + // TODO(developer): Replace these variables before running the sample. + String project = "PROJECT"; + String endpointId = "ENDPOINT_ID"; + String modelName = "MODEL_NAME"; + String deployedModelDisplayName = "DEPLOYED_MODEL_DISPLAY_NAME"; + deployModelCustomTrainedModelSample(project, endpointId, modelName, deployedModelDisplayName); + } + + static void deployModelCustomTrainedModelSample( + String project, String endpointId, String modelName, String deployedModelDisplayName) + throws IOException, ExecutionException, InterruptedException { + EndpointServiceSettings settings = + EndpointServiceSettings.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 (EndpointServiceClient client = EndpointServiceClient.create(settings)) { + MachineSpec machineSpec = MachineSpec.newBuilder().setMachineType("n1-standard-2").build(); + DedicatedResources dedicatedResources = + DedicatedResources.newBuilder().setMinReplicaCount(1).setMachineSpec(machineSpec).build(); + DeployedModel deployedModel = + DeployedModel.newBuilder() + // format: 'projects/{project}/locations/{location}/models/{model}' + .setModel(modelName) + .setDisplayName(deployedModelDisplayName) + // `dedicated_resources` must be used for non-AutoML models + .setDedicatedResources(dedicatedResources) + .build(); + // key '0' assigns traffic for the newly deployed model + // Traffic percentage values must add up to 100 + // Leave dictionary empty if endpoint should not accept any traffic + Map trafficSplit = new HashMap<>(); + trafficSplit.put("0", 100); + EndpointName endpoint = EndpointName.of(project, location, endpointId); + OperationFuture response = + client.deployModelAsync(endpoint, deployedModel, trafficSplit); + + // You can use OperationFuture.getInitialFuture to get a future representing the initial + // response to the request, which contains information while the operation is in progress. + System.out.format("Operation name: %s\n", response.getInitialFuture().get().getName()); + + // OperationFuture.get() will block until the operation is finished. + DeployModelResponse deployModelResponse = response.get(); + System.out.format("deployModelResponse: %s\n", deployModelResponse); + } + } +} + +// [END aiplatform_deploy_model_custom_trained_model_sample] diff --git a/samples/snippets/src/main/java/aiplatform/ExportModelVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/ExportModelVideoActionRecognitionSample.java new file mode 100644 index 000000000..1d70cd0d8 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/ExportModelVideoActionRecognitionSample.java @@ -0,0 +1,79 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_export_model_video_action_recognition_sample] +import com.google.api.gax.longrunning.OperationFuture; +import com.google.cloud.aiplatform.v1beta1.ExportModelOperationMetadata; +import com.google.cloud.aiplatform.v1beta1.ExportModelRequest; +import com.google.cloud.aiplatform.v1beta1.ExportModelResponse; +import com.google.cloud.aiplatform.v1beta1.GcsDestination; +import com.google.cloud.aiplatform.v1beta1.ModelName; +import com.google.cloud.aiplatform.v1beta1.ModelServiceClient; +import com.google.cloud.aiplatform.v1beta1.ModelServiceSettings; +import java.io.IOException; +import java.util.concurrent.ExecutionException; + +public class ExportModelVideoActionRecognitionSample { + + public static void main(String[] args) + throws IOException, ExecutionException, InterruptedException { + // TODO(developer): Replace these variables before running the sample. + String project = "PROJECT"; + String modelId = "MODEL_ID"; + String gcsDestinationOutputUriPrefix = "GCS_DESTINATION_OUTPUT_URI_PREFIX"; + String exportFormat = "EXPORT_FORMAT"; + exportModelVideoActionRecognitionSample( + project, modelId, gcsDestinationOutputUriPrefix, exportFormat); + } + + static void exportModelVideoActionRecognitionSample( + String project, String modelId, String gcsDestinationOutputUriPrefix, String exportFormat) + throws IOException, ExecutionException, InterruptedException { + ModelServiceSettings settings = + ModelServiceSettings.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 (ModelServiceClient client = ModelServiceClient.create(settings)) { + GcsDestination gcsDestination = + GcsDestination.newBuilder().setOutputUriPrefix(gcsDestinationOutputUriPrefix).build(); + ExportModelRequest.OutputConfig outputConfig = + ExportModelRequest.OutputConfig.newBuilder() + .setArtifactDestination(gcsDestination) + .setExportFormatId(exportFormat) + .build(); + ModelName name = ModelName.of(project, location, modelId); + OperationFuture response = + client.exportModelAsync(name, outputConfig); + + // You can use OperationFuture.getInitialFuture to get a future representing the initial + // response to the request, which contains information while the operation is in progress. + System.out.format("Operation name: %s\n", response.getInitialFuture().get().getName()); + + // OperationFuture.get() will block until the operation is finished. + ExportModelResponse exportModelResponse = response.get(); + System.out.format("exportModelResponse: %s\n", exportModelResponse); + } + } +} + +// [END aiplatform_export_model_video_action_recognition_sample] diff --git a/samples/snippets/src/main/java/aiplatform/GetHyperparameterTuningJobSample.java b/samples/snippets/src/main/java/aiplatform/GetHyperparameterTuningJobSample.java new file mode 100644 index 000000000..b4d100c3c --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/GetHyperparameterTuningJobSample.java @@ -0,0 +1,55 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_get_hyperparameter_tuning_job_sample] +import com.google.cloud.aiplatform.v1beta1.HyperparameterTuningJob; +import com.google.cloud.aiplatform.v1beta1.HyperparameterTuningJobName; +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import java.io.IOException; + +public class GetHyperparameterTuningJobSample { + + public static void main(String[] args) throws IOException { + // TODO(developer): Replace these variables before running the sample. + String project = "PROJECT"; + String hyperparameterTuningJobId = "HYPERPARAMETER_TUNING_JOB_ID"; + getHyperparameterTuningJobSample(project, hyperparameterTuningJobId); + } + + static void getHyperparameterTuningJobSample(String project, String hyperparameterTuningJobId) + 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)) { + HyperparameterTuningJobName name = + HyperparameterTuningJobName.of(project, location, hyperparameterTuningJobId); + HyperparameterTuningJob response = client.getHyperparameterTuningJob(name); + System.out.format("response: %s\n", response); + } + } +} + +// [END aiplatform_get_hyperparameter_tuning_job_sample] diff --git a/samples/snippets/src/main/java/aiplatform/GetModelEvaluationVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/GetModelEvaluationVideoActionRecognitionSample.java new file mode 100644 index 000000000..2685e23f1 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/GetModelEvaluationVideoActionRecognitionSample.java @@ -0,0 +1,55 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_get_model_evaluation_video_action_recognition_sample] +import com.google.cloud.aiplatform.v1beta1.ModelEvaluation; +import com.google.cloud.aiplatform.v1beta1.ModelEvaluationName; +import com.google.cloud.aiplatform.v1beta1.ModelServiceClient; +import com.google.cloud.aiplatform.v1beta1.ModelServiceSettings; +import java.io.IOException; + +public class GetModelEvaluationVideoActionRecognitionSample { + + public static void main(String[] args) throws IOException { + // TODO(developer): Replace these variables before running the sample. + String project = "PROJECT"; + String modelId = "MODEL_ID"; + String evaluationId = "EVALUATION_ID"; + getModelEvaluationVideoActionRecognitionSample(project, modelId, evaluationId); + } + + static void getModelEvaluationVideoActionRecognitionSample( + String project, String modelId, String evaluationId) throws IOException { + ModelServiceSettings settings = + ModelServiceSettings.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 (ModelServiceClient client = ModelServiceClient.create(settings)) { + ModelEvaluationName name = ModelEvaluationName.of(project, location, modelId, evaluationId); + ModelEvaluation response = client.getModelEvaluation(name); + System.out.format("response: %s\n", response); + } + } +} + +// [END aiplatform_get_model_evaluation_video_action_recognition_sample] diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java new file mode 100644 index 000000000..e2b423999 --- /dev/null +++ b/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java @@ -0,0 +1,81 @@ +/* + * 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 + * + * http://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. + */ + +package aiplatform; + +// [START aiplatform_import_data_video_action_recognition_sample] +import com.google.api.gax.longrunning.OperationFuture; +import com.google.cloud.aiplatform.v1beta1.DatasetName; +import com.google.cloud.aiplatform.v1beta1.DatasetServiceClient; +import com.google.cloud.aiplatform.v1beta1.DatasetServiceSettings; +import com.google.cloud.aiplatform.v1beta1.GcsSource; +import com.google.cloud.aiplatform.v1beta1.ImportDataConfig; +import com.google.cloud.aiplatform.v1beta1.ImportDataOperationMetadata; +import com.google.cloud.aiplatform.v1beta1.ImportDataResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ExecutionException; + +public class ImportDataVideoActionRecognitionSample { + + public static void main(String[] args) + throws IOException, ExecutionException, InterruptedException { + // TODO(developer): Replace these variables before running the sample. + String project = "PROJECT"; + String datasetId = "DATASET_ID"; + String gcsSourceUri = "GCS_SOURCE_URI"; + importDataVideoActionRecognitionSample(project, datasetId, gcsSourceUri); + } + + static void importDataVideoActionRecognitionSample( + String project, String datasetId, String gcsSourceUri) + throws IOException, ExecutionException, InterruptedException { + DatasetServiceSettings settings = + DatasetServiceSettings.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 (DatasetServiceClient client = DatasetServiceClient.create(settings)) { + GcsSource gcsSource = GcsSource.newBuilder().addUris(gcsSourceUri).build(); + ImportDataConfig importConfig0 = + ImportDataConfig.newBuilder() + .setGcsSource(gcsSource) + .setImportSchemaUri( + "gs://google-cloud-aiplatform/schema/dataset/ioformat/video_action_recognition_io_format_1.0.0.yaml") + .build(); + List importConfigs = new ArrayList<>(); + importConfigs.add(importConfig0); + DatasetName name = DatasetName.of(project, location, datasetId); + OperationFuture response = + client.importDataAsync(name, importConfigs); + + // You can use OperationFuture.getInitialFuture to get a future representing the initial + // response to the request, which contains information while the operation is in progress. + System.out.format("Operation name: %s\n", response.getInitialFuture().get().getName()); + + // OperationFuture.get() will block until the operation is finished. + ImportDataResponse importDataResponse = response.get(); + System.out.format("importDataResponse: %s\n", importDataResponse); + } + } +} + +// [END aiplatform_import_data_video_action_recognition_sample] diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java new file mode 100644 index 000000000..4bbaa4ea6 --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java @@ -0,0 +1,111 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateBatchPredictionJobBigquerySampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String MODEL_ID = System.getenv("BATCH_PREDICTION_TABULAR_BQ_MODEL_ID"); + private static final String BIGQUERY_SOURCE_URI = + "bq://ucaip-sample-tests.table_test.all_bq_types"; + private static final String BIGQUERY_DESTINATION_OUTPUT_URI_PREFIX = "bq://ucaip-sample-tests"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String batchPredictionJobId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("BATCH_PREDICTION_TABULAR_BQ_MODEL_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + CancelBatchPredictionJobSample.cancelBatchPredictionJobSample(PROJECT, batchPredictionJobId); + + // Assert + String cancelResponse = bout.toString(); + assertThat(cancelResponse).contains("Cancelled the Batch Prediction Job"); + TimeUnit.MINUTES.sleep(2); + + // Delete the Batch Prediction Job + DeleteBatchPredictionJobSample.deleteBatchPredictionJobSample(PROJECT, batchPredictionJobId); + + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Deleted Batch"); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testCreateBatchPredictionJobBigquerySample() throws IOException { + // Act + String batchPredictionDisplayName = + String.format( + "batch_prediction_bigquery_display_name_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + String modelName = String.format("projects/%s/locations/us-central1/models/%s", + PROJECT, MODEL_ID); + + CreateBatchPredictionJobBigquerySample.createBatchPredictionJobBigquerySample( + PROJECT, + batchPredictionDisplayName, + modelName, + "bigquery", + BIGQUERY_SOURCE_URI, + "bigquery", + BIGQUERY_DESTINATION_OUTPUT_URI_PREFIX); + + // Assert + String got = bout.toString(); + assertThat(got).contains(batchPredictionDisplayName); + assertThat(got).contains("response:"); + batchPredictionJobId = got.split("Name: ")[1].split("batchPredictionJobs/")[1].split("\n")[0]; + } +} diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java new file mode 100644 index 000000000..66420ac7d --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java @@ -0,0 +1,111 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateBatchPredictionJobSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String MODEL_ID = System.getenv("BATCH_PREDICTION_MODEL_ID"); + private static final String GCS_SOURCE_URI = + "gs://ucaip-samples-test-output/inputs/icn_batch_prediction_input.jsonl"; + private static final String GCS_OUTPUT_URI = "gs://ucaip-samples-test-output/"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String batchPredictionJobId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("BATCH_PREDICTION_MODEL_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + CancelBatchPredictionJobSample.cancelBatchPredictionJobSample(PROJECT, batchPredictionJobId); + + // Assert + String cancelResponse = bout.toString(); + assertThat(cancelResponse).contains("Cancelled the Batch Prediction Job"); + TimeUnit.MINUTES.sleep(2); + + // Delete the Batch Prediction Job + DeleteBatchPredictionJobSample.deleteBatchPredictionJobSample(PROJECT, batchPredictionJobId); + + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Deleted Batch"); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testCreateBatchPredictionJobSample() throws IOException { + // Act + String batchPredictionDisplayName = + String.format( + "batch_prediction_bigquery_display_name_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + String modelName = String.format("projects/%s/locations/us-central1/models/%s", + PROJECT, MODEL_ID); + + CreateBatchPredictionJobSample.createBatchPredictionJobSample( + PROJECT, + batchPredictionDisplayName, + modelName, + "jsonl", + GCS_SOURCE_URI, + "jsonl", + GCS_OUTPUT_URI); + + // Assert + String got = bout.toString(); + assertThat(got).contains(batchPredictionDisplayName); + assertThat(got).contains("response:"); + batchPredictionJobId = got.split("Name: ")[1].split("batchPredictionJobs/")[1].split("\n")[0]; + } +} diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java new file mode 100644 index 000000000..10c6381cd --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java @@ -0,0 +1,109 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateBatchPredictionJobVideoActionRecognitionSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String MODEL_ID = System.getenv("BATCH_PREDICTION_VIDEO_ACTION_RECOGNITION_MODEL_ID"); + private static final String GCS_SOURCE_URI = + "gs://ucaip-samples-test-output/inputs/icn_batch_prediction_input.jsonl"; + private static final String GCS_OUTPUT_URI = "gs://ucaip-samples-test-output/"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String batchPredictionJobId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("BATCH_PREDICTION_VIDEO_ACTION_RECOGNITION_MODEL_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + CancelBatchPredictionJobSample.cancelBatchPredictionJobSample(PROJECT, batchPredictionJobId); + + // Assert + String cancelResponse = bout.toString(); + assertThat(cancelResponse).contains("Cancelled the Batch Prediction Job"); + TimeUnit.MINUTES.sleep(2); + + // Delete the Batch Prediction Job + DeleteBatchPredictionJobSample.deleteBatchPredictionJobSample(PROJECT, batchPredictionJobId); + + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Deleted Batch"); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testCreateBatchPredictionJobVideoActionRecognitionSample() throws IOException { + // Act + String batchPredictionDisplayName = + String.format( + "batch_prediction_video_action_recognition_display_name_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + String modelName = String.format("projects/%s/locations/us-central1/models/%s", + PROJECT, MODEL_ID); + + CreateBatchPredictionJobVideoActionRecognitionSample.createBatchPredictionJobVideoActionRecognitionSample( + PROJECT, + batchPredictionDisplayName, + modelName, + GCS_SOURCE_URI, + GCS_OUTPUT_URI); + + // Assert + String got = bout.toString(); + assertThat(got).contains(batchPredictionDisplayName); + assertThat(got).contains("response:"); + batchPredictionJobId = got.split("Name: ")[1].split("batchPredictionJobs/")[1].split("\n")[0]; + } +} diff --git a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java new file mode 100644 index 000000000..13b78952f --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java @@ -0,0 +1,112 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +public class CreateDataLabelingJobActiveLearningSampleTest { + + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String DATASET_ID = System.getenv("DATA_LABELING_ACTIVE_LEARNING_DATASET_ID"); + private static final String INSTRUCTION_URI = + "gs://ucaip-sample-resources/images/datalabeling_instructions.pdf"; + private static final String INPUTS_SCHEMA_URI = "gs://google-cloud-aiplatform/schema/datalabelingjob/inputs/image_classification_1.0.0.yaml"; + private static final String ANNOTATION_SPEC = "roses"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String dataLabelingJobId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("DATA_LABELING_ACTIVE_LEARNING_DATASET_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + // Cancel data labeling job + CancelDataLabelingJobSample.cancelDataLabelingJob(PROJECT, dataLabelingJobId); + + // Assert + String cancelResponse = bout.toString(); + assertThat(cancelResponse).contains("Cancelled Data labeling job"); + TimeUnit.MINUTES.sleep(1); + + // Delete the created dataset + DeleteDataLabelingJobSample.deleteDataLabelingJob(PROJECT, dataLabelingJobId); + + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Deleted Data Labeling Job."); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + @Ignore("Avoid creating actual data labeling job for humans") + public void testCreateDataLabelingJobActiveLearningSample() throws IOException { + // Act + String dataLabelingDisplayName = + String.format( + "temp_data_labeling_job_active_learning_display_name_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + CreateDataLabelingJobActiveLearningSample.createDataLabelingJobActiveLearningSample( + PROJECT, + dataLabelingDisplayName, + DATASET_ID, + INSTRUCTION_URI, + INPUTS_SCHEMA_URI , + ANNOTATION_SPEC); + + // Assert + String got = bout.toString(); + assertThat(got).contains(dataLabelingDisplayName); + assertThat(got).contains("Create Data Labeling Job Image Response"); + dataLabelingJobId = got.split("Name: ")[1].split("dataLabelingJobs/")[1].split("\n")[0]; + } +} diff --git a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java new file mode 100644 index 000000000..d0322de41 --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java @@ -0,0 +1,116 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +public class CreateDataLabelingJobSpecialistPoolSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String DATASET_ID = System.getenv("DATA_LABELING_ACTIVE_LEARNING_DATASET_ID"); + private static final String SPECIALIST_POOL_ID = System.getenv("DATA_LABELING_SPECIALIST_POOL_ID"); + private static final String INSTRUCTION_URI = + "gs://ucaip-sample-resources/images/datalabeling_instructions.pdf"; + private static final String INPUTS_SCHEMA_URI = "gs://google-cloud-aiplatform/schema/datalabelingjob/inputs/image_classification_1.0.0.yaml"; + private static final String ANNOTATION_SPEC = "roses"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String dataLabelingJobId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("DATA_LABELING_ACTIVE_LEARNING_DATASET_ID"); + requireEnvVar("DATA_LABELING_SPECIALIST_POOL_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + // Cancel data labeling job + CancelDataLabelingJobSample.cancelDataLabelingJob(PROJECT, dataLabelingJobId); + + // Assert + String cancelResponse = bout.toString(); + assertThat(cancelResponse).contains("Cancelled Data labeling job"); + TimeUnit.MINUTES.sleep(1); + + // Delete the created dataset + DeleteDataLabelingJobSample.deleteDataLabelingJob(PROJECT, dataLabelingJobId); + + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Deleted Data Labeling Job."); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + @Ignore("Avoid creating actual data labeling job for humans") + public void testCreateDataLabelingJobSpecialistPoolSample() throws IOException { + // Act + String dataLabelingDisplayName = + String.format( + "temp_data_labeling_job_specialist_pool_display_name_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + + CreateDataLabelingJobSpecialistPoolSample.createDataLabelingJobSpecialistPoolSample( + PROJECT, + dataLabelingDisplayName, + DATASET_ID, + SPECIALIST_POOL_ID, + INSTRUCTION_URI, + INPUTS_SCHEMA_URI, + ANNOTATION_SPEC); + + + // Assert + String got = bout.toString(); + assertThat(got).contains(dataLabelingDisplayName); + assertThat(got).contains("Create Data Labeling Job Image Response"); + dataLabelingJobId = got.split("Name: ")[1].split("dataLabelingJobs/")[1].split("\n")[0]; + } +} diff --git a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java new file mode 100644 index 000000000..f98a806e3 --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java @@ -0,0 +1,110 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateHyperparameterTuningJobPythonPackageSampleTest { + + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String EXECUTOR_IMAGE_URI = "us.gcr.io/cloud-aiplatform/training/tf-gpu.2-1:latest"; + private static final String PACKAGE_URI = "gs://ucaip-test-us-central1/training/pythonpackages/trainer.tar.bz2"; + private static final String PYTHON_MODULE = "trainer.hptuning_trainer"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String hyperparameterJobId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + JobServiceSettings settings = + JobServiceSettings.newBuilder() + .setEndpoint("us-central1-aiplatform.googleapis.com:443") + .build(); + + try (JobServiceClient client = JobServiceClient.create(settings)) { + // Cancel hyper parameter job + String hyperparameterJobName = + String.format("projects/%s/locations/us-central1/hyperparameterTuningJobs/%s", + PROJECT, + hyperparameterJobId); + client.cancelHyperparameterTuningJob(hyperparameterJobName); + + TimeUnit.MINUTES.sleep(1); + + // Delete the created job + client.deleteHyperparameterTuningJobAsync(hyperparameterJobName); + System.out.flush(); + System.setOut(originalPrintStream); + } + } + + @Test + public void testCreateHyperparameterTuningJobPythonPackageSample() throws IOException { + String hyperparameterTuningJobDisplayName = + String.format( + "temp_hyperparameter_tuning_job_display_name_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + CreateHyperparameterTuningJobPythonPackageSample.createHyperparameterTuningJobPythonPackageSample( + PROJECT, + hyperparameterTuningJobDisplayName, + EXECUTOR_IMAGE_URI, + PACKAGE_URI, + PYTHON_MODULE); + + // Assert + String got = bout.toString(); + assertThat(got).contains(hyperparameterTuningJobDisplayName); + assertThat(got).contains("response:"); + hyperparameterJobId = got.split("Name: ")[1].split("hyperparameterTuningJobs/")[1].split("\n")[0]; + } +} diff --git a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java new file mode 100644 index 000000000..460bde65e --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java @@ -0,0 +1,109 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.aiplatform.v1beta1.JobServiceClient; +import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + + +public class CreateHyperparameterTuningJobSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String CONTAINER_IMAGE_URI = "gcr.io/ucaip-test/ucaip-training-test:latest"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String hyperparameterJobId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + JobServiceSettings settings = + JobServiceSettings.newBuilder() + .setEndpoint("us-central1-aiplatform.googleapis.com:443") + .build(); + + try (JobServiceClient client = JobServiceClient.create(settings)) { + // Cancel hyper parameter job + String hyperparameterJobName = + String.format("projects/%s/locations/us-central1/hyperparameterTuningJobs/%s", + PROJECT, + hyperparameterJobId); + client.cancelHyperparameterTuningJob(hyperparameterJobName); + + TimeUnit.MINUTES.sleep(1); + + // Delete the created job + client.deleteHyperparameterTuningJobAsync(hyperparameterJobName); + System.out.flush(); + System.setOut(originalPrintStream); + } + } + + @Test + public void testCreateHyperparameterTuningJobSample() throws IOException { + String hyperparameterTuningJobDisplayName = + String.format( + "temp_hyperparameter_tuning_job_display_name_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + CreateHyperparameterTuningJobSample.createHyperparameterTuningJobSample( + PROJECT, + hyperparameterTuningJobDisplayName, + CONTAINER_IMAGE_URI + ); + + String got = bout.toString(); + assertThat(got).contains(hyperparameterTuningJobDisplayName); + assertThat(got).contains("response:"); + hyperparameterJobId = got.split("Name: ")[1].split("hyperparameterTuningJobs/")[1].split("\n")[0]; + + } + +} diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java new file mode 100644 index 000000000..55c75f4b2 --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java @@ -0,0 +1,110 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateTrainingPipelineCustomJobSampleTest { + + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String CONTAINER_IMAGE_URI = "gcr.io/ucaip-sample-tests/mnist-custom-job:latest"; + private static final String GCS_OUTPUT_DIRECTORY = "gs://ucaip-samples-us-central1/training_pipeline_output"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String trainingPipelineId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + // Cancel the Training Pipeline + CancelTrainingPipelineSample.cancelTrainingPipelineSample(PROJECT, trainingPipelineId); + + // Assert + String cancelResponse = bout.toString(); + assertThat(cancelResponse).contains("Cancelled the Training Pipeline"); + TimeUnit.MINUTES.sleep(2); + + // Delete the Training Pipeline + DeleteTrainingPipelineSample.deleteTrainingPipelineSample(PROJECT, trainingPipelineId); + + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Deleted Training Pipeline."); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testCreateTrainingPipelineCustomJobSample() throws IOException { + // Act + String trainingPipelineDisplayName = + String.format( + "temp_create_training_pipeline_test_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + String modelDisplayName = + String.format( + "temp_create_training_pipeline_model_test_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + CreateTrainingPipelineCustomJobSample.createTrainingPipelineCustomJobSample( + PROJECT, + trainingPipelineDisplayName, + modelDisplayName, + CONTAINER_IMAGE_URI, + GCS_OUTPUT_DIRECTORY + ); + + // Assert + String got = bout.toString(); + assertThat(got).contains(trainingPipelineDisplayName); + trainingPipelineId = got.split("Name: ")[1].split("trainingPipelines/")[1].split("\n")[0]; + } +} diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java new file mode 100644 index 000000000..c19e6f692 --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java @@ -0,0 +1,115 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String DATASET_ID = System.getenv("CUSTOM_MANAGED_DATASET"); + private static final String ANNOTATION_SCHEMA_URI = "gs://google-cloud-aiplatform/schema/dataset/annotation/image_classification_1.0.0.yaml"; + private static final String TRAINING_CONTAINER_IMAGE_URI = "gcr.io/ucaip-test/custom-container-managed-dataset:latest"; + private static final String MODEL_CONTAIN_SPEC_IMAGE_URI = "gcr.io/cloud-aiplatform/prediction/tf-gpu.1-15:latest"; + private static final String GCS_OUTPUT_DIRECTORY = "gs://ucaip-samples-us-central1/training_pipeline_output/custom_training_managed_dataset"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String trainingPipelineId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + // Cancel the Training Pipeline + CancelTrainingPipelineSample.cancelTrainingPipelineSample(PROJECT, trainingPipelineId); + + // Assert + String cancelResponse = bout.toString(); + assertThat(cancelResponse).contains("Cancelled the Training Pipeline"); + TimeUnit.MINUTES.sleep(2); + + // Delete the Training Pipeline + DeleteTrainingPipelineSample.deleteTrainingPipelineSample(PROJECT, trainingPipelineId); + + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Deleted Training Pipeline."); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testCreateTrainingPipelineCustomTrainingManagedDatasetSample() throws IOException { + // Act + String trainingPipelineDisplayName = + String.format( + "temp_create_training_pipeline_test_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + String modelDisplayName = + String.format( + "temp_create_training_pipeline_model_test_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + CreateTrainingPipelineCustomTrainingManagedDatasetSample.createTrainingPipelineCustomTrainingManagedDatasetSample( + PROJECT, + trainingPipelineDisplayName, + modelDisplayName, + DATASET_ID, + ANNOTATION_SCHEMA_URI, + TRAINING_CONTAINER_IMAGE_URI, + MODEL_CONTAIN_SPEC_IMAGE_URI, + GCS_OUTPUT_DIRECTORY + ); + + // Assert + String got = bout.toString(); + assertThat(got).contains(trainingPipelineDisplayName); + trainingPipelineId = got.split("Name: ")[1].split("trainingPipelines/")[1].split("\n")[0]; + } +} diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java new file mode 100644 index 000000000..75f805a96 --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java @@ -0,0 +1,112 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateTrainingPipelineVideoActionRecognitionSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String DATASET_ID = + System.getenv("TRAINING_PIPELINE_VIDEO_ACTION_DATASET_ID"); + private static final String MODEL = "CLOUD"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String trainingPipelineId; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("TRAINING_PIPELINE_VIDEO_ACTION_DATASET_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + // Cancel the Training Pipeline + CancelTrainingPipelineSample.cancelTrainingPipelineSample(PROJECT, trainingPipelineId); + + // Assert + String cancelResponse = bout.toString(); + assertThat(cancelResponse).contains("Cancelled the Training Pipeline"); + TimeUnit.MINUTES.sleep(2); + + // Delete the Training Pipeline + DeleteTrainingPipelineSample.deleteTrainingPipelineSample(PROJECT, trainingPipelineId); + + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Deleted Training Pipeline."); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testCreateTrainingPipelineVideoActionRecognitionSample() throws IOException { + // Act + String trainingPipelineDisplayName = + String.format( + "temp_create_training_pipeline_video_action_recognition_test_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + String modelDisplayName = + String.format( + "temp_create_training_pipeline_video_action_recognition_model_test_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + + CreateTrainingPipelineVideoActionRecognitionSample.createTrainingPipelineVideoActionRecognitionSample( + PROJECT, + trainingPipelineDisplayName, + DATASET_ID, + modelDisplayName, + MODEL + ); + + // Assert + String got = bout.toString(); + assertThat(got).contains(DATASET_ID); + assertThat(got).contains("response"); + trainingPipelineId = got.split("Name: ")[1].split("trainingPipelines/")[1].split("\n")[0]; + } +} diff --git a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java new file mode 100644 index 000000000..a1153e05d --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java @@ -0,0 +1,94 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import io.grpc.StatusRuntimeException; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DeployModelCustomTrainedModelSampleTest { + + private static final String PROJECT_ID = "ucaip-sample-tests"; + private static final String MODEL_ID = "4992732768149438464"; + private static final String ENDPOINT_ID = "4366591682456584192"; + private String modelName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + } + + @Before + public void setUp() { + modelName = String.format("projects/%s/locations/us-central1/models/%s", + PROJECT_ID, MODEL_ID); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testDeployModelCustomTrainedModelSample() + throws TimeoutException { + // As model deployment can take a long time, instead try to deploy a + // nonexistent model and confirm that the model was not found, but other + // elements of the request were valid. + String deployedModelDisplayName = + String.format( + "temp_deploy_model_test_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + try { + DeployModelCustomTrainedModelSample.deployModelCustomTrainedModelSample( + PROJECT_ID, + ENDPOINT_ID, + modelName, + deployedModelDisplayName + ); + // Assert + String got = bout.toString(); + assertThat(got).contains("is not found."); + } catch (StatusRuntimeException | ExecutionException | InterruptedException | IOException e) { + assertThat(e.getMessage()).contains("is not found."); + } + } +} diff --git a/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java new file mode 100644 index 000000000..6faa165d2 --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java @@ -0,0 +1,92 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ExportModelVideoActionRecognitionSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String MODEL_ID = + System.getenv("EXPORT_MODEL_VIDEO_ACTION_RECOGNITION_MODEL_ID"); + private static final String GCS_DESTINATION_URI_PREFIX = + "gs://ucaip-samples-test-output/tmp/export_model_video_action_recognition_sample"; + private static final String EXPORT_FORMAT = "tf-saved-model"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("EXPORT_MODEL_VIDEO_ACTION_RECOGNITION_MODEL_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // Delete the export model + String bucketName = GCS_DESTINATION_URI_PREFIX.split("/", 4)[2]; + String objectName = (GCS_DESTINATION_URI_PREFIX.split("/", 4)[3]).concat("model-" + MODEL_ID); + DeleteExportModelSample.deleteExportModelSample(PROJECT, bucketName, objectName); + + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Export Model Deleted"); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testExportModelVideoActionRecognitionSample() + throws InterruptedException, ExecutionException, TimeoutException, IOException { + // Act + ExportModelVideoActionRecognitionSample.exportModelVideoActionRecognitionSample( + PROJECT, + MODEL_ID, + GCS_DESTINATION_URI_PREFIX, + EXPORT_FORMAT + ); + + // Assert + String got = bout.toString(); + assertThat(got).contains("exportModelResponse: "); + } +} diff --git a/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java new file mode 100644 index 000000000..18aeeea11 --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java @@ -0,0 +1,73 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class GetHyperparameterTuningJobSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String HYPERPARAMETER_TUNING_JOB_ID = System.getenv("GET_HP_TUNING_JOB_ID"); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("GET_HP_TUNING_JOB_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testGetHyperparameterTuningJobSample() throws IOException { + GetHyperparameterTuningJobSample.getHyperparameterTuningJobSample( + PROJECT, HYPERPARAMETER_TUNING_JOB_ID + ); + + // Assert + String got = bout.toString(); + assertThat(got).contains(HYPERPARAMETER_TUNING_JOB_ID); + } +} diff --git a/samples/snippets/src/test/java/aiplatform/GetModelEvaluationVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/GetModelEvaluationVideoActionRecognitionSampleTest.java new file mode 100644 index 000000000..671cda7af --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/GetModelEvaluationVideoActionRecognitionSampleTest.java @@ -0,0 +1,76 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class GetModelEvaluationVideoActionRecognitionSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String MODEL_ID = System.getenv("VIDEO_ACTION_MODEL_ID"); + private static final String EVALUATION_ID = System.getenv("VIDEO_ACTION_EVALUATION_ID"); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("VIDEO_ACTION_MODEL_ID"); + requireEnvVar("VIDEO_ACTION_EVALUATION_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testGetModelEvaluationVideoActionRecognitionSample() throws IOException { + // Act + GetModelEvaluationVideoActionRecognitionSample.getModelEvaluationVideoActionRecognitionSample( + PROJECT, MODEL_ID, EVALUATION_ID); + + // Assert + String got = bout.toString(); + assertThat(got).contains(MODEL_ID); + assertThat(got).contains("response:"); + } +} diff --git a/samples/snippets/src/test/java/aiplatform/ImportDataVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/ImportDataVideoActionRecognitionSampleTest.java new file mode 100644 index 000000000..cbf0bd622 --- /dev/null +++ b/samples/snippets/src/test/java/aiplatform/ImportDataVideoActionRecognitionSampleTest.java @@ -0,0 +1,127 @@ +/* + * 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 + * + * http://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. + */ +package aiplatform; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.api.gax.longrunning.OperationFuture; +import com.google.cloud.aiplatform.v1beta1.CreateDatasetOperationMetadata; +import com.google.cloud.aiplatform.v1beta1.Dataset; +import com.google.cloud.aiplatform.v1beta1.DatasetName; +import com.google.cloud.aiplatform.v1beta1.DatasetServiceClient; +import com.google.cloud.aiplatform.v1beta1.DatasetServiceSettings; +import com.google.cloud.aiplatform.v1beta1.DeleteOperationMetadata; +import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.protobuf.Empty; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ImportDataVideoActionRecognitionSampleTest { + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String LOCATION = "us-central1"; + private static final String GCS_SOURCE_URI = + "gs://automl-video-demo-data/ucaip-var/swimrun.jsonl"; + + private String datasetId; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + } + + @Before + public void setUp() + throws IOException, InterruptedException, ExecutionException, TimeoutException { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + // create a temp dataset for importing data + DatasetServiceSettings datasetServiceSettings = + DatasetServiceSettings.newBuilder() + .setEndpoint("us-central1-aiplatform.googleapis.com:443") + .build(); + + try (DatasetServiceClient datasetServiceClient = + DatasetServiceClient.create(datasetServiceSettings)) { + String metadataSchemaUri = + "gs://google-cloud-aiplatform/schema/dataset/metadata/video_1.0.0.yaml"; + LocationName locationName = LocationName.of(PROJECT, LOCATION); + Dataset dataset = + Dataset.newBuilder() + .setDisplayName("test_dataset_display_name") + .setMetadataSchemaUri(metadataSchemaUri) + .build(); + + OperationFuture datasetFuture = + datasetServiceClient.createDatasetAsync(locationName, dataset); + Dataset datasetResponse = datasetFuture.get(300, TimeUnit.SECONDS); + String[] datasetValues = datasetResponse.getName().split("/"); + datasetId = datasetValues[datasetValues.length - 1]; + } + } + + @After + public void tearDown() throws InterruptedException, ExecutionException, IOException { + // delete the temp dataset + DatasetServiceSettings datasetServiceSettings = + DatasetServiceSettings.newBuilder() + .setEndpoint("us-central1-aiplatform.googleapis.com:443") + .build(); + try (DatasetServiceClient datasetServiceClient = + DatasetServiceClient.create(datasetServiceSettings)) { + DatasetName datasetName = DatasetName.of(PROJECT, LOCATION, datasetId); + + OperationFuture operationFuture = + datasetServiceClient.deleteDatasetAsync(datasetName); + operationFuture.get(); + } + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testImportDataVideoActionRecognitionSample() + throws IOException, InterruptedException, ExecutionException, TimeoutException { + // Act + ImportDataVideoActionRecognitionSample.importDataVideoActionRecognitionSample( + PROJECT, datasetId, GCS_SOURCE_URI); + + // Assert + String got = bout.toString(); + assertThat(got).contains("importDataResponse:"); + } +} From 43f24be2d80ff056a652540390a8722f04172c85 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Fri, 11 Dec 2020 12:42:12 -0800 Subject: [PATCH 02/13] fix: per reviewer --- samples/snippets/nbactions.xml | 19 ------------------- ...parameterTuningJobPythonPackageSample.java | 9 --------- 2 files changed, 28 deletions(-) delete mode 100644 samples/snippets/nbactions.xml diff --git a/samples/snippets/nbactions.xml b/samples/snippets/nbactions.xml deleted file mode 100644 index 1b4365b9f..000000000 --- a/samples/snippets/nbactions.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - test.single - - * - - - test-compile - surefire:test - - - ${packageClassName} - 580378083368 - 8842430840248991744 - /Users/erschmid/Devtools/ucaip-samples-test.json - - - diff --git a/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java index 0b8b2641d..0c063c6ef 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java @@ -21,14 +21,6 @@ import com.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType; import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec; import com.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec; -//import com.google.cloud.aiplatform.v1beta1.ClassOfConditionalParameterDecay; -//import com.google.cloud.aiplatform.v1beta1.ClassOfConditionalParameterLearningRate; -//import com.google.cloud.aiplatform.v1beta1.ClassOfDiscreteValueSpec; -//import com.google.cloud.aiplatform.v1beta1.ClassOfDoubleValueSpec; -//import com.google.cloud.aiplatform.v1beta1.ClassOfMetric; -//import com.google.cloud.aiplatform.v1beta1.ClassOfParameter; -//import com.google.cloud.aiplatform.v1beta1.ClassOfParameterSpec; -//import com.google.cloud.aiplatform.v1beta1.ClassOfParentDiscreteValues; import com.google.cloud.aiplatform.v1beta1.CustomJobSpec; import com.google.cloud.aiplatform.v1beta1.HyperparameterTuningJob; import com.google.cloud.aiplatform.v1beta1.JobServiceClient; @@ -44,7 +36,6 @@ import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType; import com.google.cloud.aiplatform.v1beta1.WorkerPoolSpec; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; public class CreateHyperparameterTuningJobPythonPackageSample { From 1fc163a4705aa7aff510aacace1faaf10cb11e11 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Fri, 11 Dec 2020 12:50:28 -0800 Subject: [PATCH 03/13] fix: linter --- .../CreateBatchPredictionJobSample.java | 1 - .../CreateDataLabelingJobImageSample.java | 2 +- .../CreateDataLabelingJobVideoSample.java | 2 +- ...parameterTuningJobPythonPackageSample.java | 90 ++++++------ ...ineCustomTrainingManagedDatasetSample.java | 5 +- ...ningPipelineImageClassificationSample.java | 4 +- ...ingPipelineImageObjectDetectionSample.java | 4 +- .../CreateTrainingPipelineSample.java | 2 - ...ngPipelineTabularClassificationSample.java | 2 - ...ainingPipelineTabularRegressionSample.java | 2 - ...iningPipelineTextClassificationSample.java | 4 +- ...ingPipelineTextEntityExtractionSample.java | 4 +- ...ngPipelineTextSentimentAnalysisSample.java | 4 +- ...ningPipelineVideoClassificationSample.java | 4 +- ...ningPipelineVideoObjectTrackingSample.java | 4 +- .../java/aiplatform/DeleteDatasetSample.java | 2 +- .../ImportDataImageClassificationSample.java | 6 +- .../ImportDataImageObjectDetectionSample.java | 6 +- ...taTextClassificationSingleLabelSample.java | 6 +- .../ImportDataTextEntityExtractionSample.java | 6 +- ...ImportDataTextSentimentAnalysisSample.java | 6 +- .../ImportDataVideoClassificationSample.java | 5 +- .../ImportDataVideoObjectTrackingSample.java | 6 +- .../CancelTrainingPipelineSampleTest.java | 2 +- ...eBatchPredictionJobBigquerySampleTest.java | 134 +++++++++--------- .../CreateBatchPredictionJobSampleTest.java | 4 +- ...onJobVideoActionRecognitionSampleTest.java | 16 +-- ...taLabelingJobActiveLearningSampleTest.java | 8 +- ...taLabelingJobSpecialistPoolSampleTest.java | 11 +- .../CreateDatasetTabularGcsSampleTest.java | 4 +- ...meterTuningJobPythonPackageSampleTest.java | 28 ++-- ...eateHyperparameterTuningJobSampleTest.java | 17 +-- ...teTrainingPipelineCustomJobSampleTest.java | 9 +- ...ustomTrainingManagedDatasetSampleTest.java | 32 +++-- ...pelineTabularClassificationSampleTest.java | 30 ++-- ...ngPipelineTabularRegressionSampleTest.java | 28 ++-- ...pelineTextSentimentAnalysisSampleTest.java | 8 +- ...elineVideoActionRecognitionSampleTest.java | 10 +- ...ployModelCustomTrainedModelSampleTest.java | 12 +- .../aiplatform/DeployModelSampleTest.java | 8 +- ...ModelVideoActionRecognitionSampleTest.java | 6 +- .../GetHyperparameterTuningJobSampleTest.java | 5 +- .../java/aiplatform/ImportDataSampleTest.java | 5 +- ...PredictTextEntityExtractionSampleTest.java | 1 - ...redictTextSentimentAnalysisSampleTest.java | 1 - .../aiplatform/UploadModelSampleTest.java | 4 +- 46 files changed, 259 insertions(+), 301 deletions(-) diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java index ae03d2be4..3d42afe4f 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java @@ -120,4 +120,3 @@ static void createBatchPredictionJobSample( } // [END aiplatform_create_batch_prediction_job_sample] - diff --git a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobImageSample.java b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobImageSample.java index ce81ae6b4..5ea70a42f 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobImageSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobImageSample.java @@ -72,7 +72,7 @@ static void createDataLabelingJobImage( .setInstructionUri(instructionUri) .setInputsSchemaUri( "gs://google-cloud-aiplatform/schema/datalabelingjob/inputs/" - + "image_classification.yaml") + + "image_classification.yaml") .addDatasets(datasetName.toString()) .setInputs(annotationSpecValue) .putAnnotationLabels( diff --git a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobVideoSample.java b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobVideoSample.java index 5722c335e..ae0e451ba 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobVideoSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobVideoSample.java @@ -72,7 +72,7 @@ static void createDataLabelingJobVideo( .setInstructionUri(instructionUri) .setInputsSchemaUri( "gs://google-cloud-aiplatform/schema/datalabelingjob/inputs/" - + "video_classification.yaml") + + "video_classification.yaml") .addDatasets(datasetName.toString()) .setInputs(annotationSpecValue) .putAnnotationLabels( diff --git a/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java index 0c063c6ef..4c3254134 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java @@ -18,9 +18,6 @@ // [START aiplatform_create_hyperparameter_tuning_job_python_package_sample] import com.google.cloud.aiplatform.v1beta1.AcceleratorType; -import com.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType; -import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec; -import com.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec; import com.google.cloud.aiplatform.v1beta1.CustomJobSpec; import com.google.cloud.aiplatform.v1beta1.HyperparameterTuningJob; import com.google.cloud.aiplatform.v1beta1.JobServiceClient; @@ -29,6 +26,9 @@ import com.google.cloud.aiplatform.v1beta1.MachineSpec; import com.google.cloud.aiplatform.v1beta1.PythonPackageSpec; import com.google.cloud.aiplatform.v1beta1.StudySpec; +import com.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec; +import com.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType; +import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec; import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec; import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition; import com.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec; @@ -69,59 +69,59 @@ static void createHyperparameterTuningJobPythonPackageSample( // the "close" method on the client to safely clean up any remaining background resources. try (JobServiceClient client = JobServiceClient.create(settings)) { // study spec - MetricSpec metric = MetricSpec.newBuilder() - .setMetricId("val_rmse") - .setGoal(GoalType.MINIMIZE) - .build(); + MetricSpec metric = + MetricSpec.newBuilder().setMetricId("val_rmse").setGoal(GoalType.MINIMIZE).build(); // decay - DoubleValueSpec doubleValueSpec = DoubleValueSpec.newBuilder() - .setMinValue(1e-07) - .setMaxValue(1) - .build(); - ParameterSpec parameterDecaySpec = ParameterSpec.newBuilder() - .setParameterId("decay") - .setDoubleValueSpec(doubleValueSpec) - .setScaleType(ScaleType.UNIT_LINEAR_SCALE) - .build(); + DoubleValueSpec doubleValueSpec = + DoubleValueSpec.newBuilder().setMinValue(1e-07).setMaxValue(1).build(); + ParameterSpec parameterDecaySpec = + ParameterSpec.newBuilder() + .setParameterId("decay") + .setDoubleValueSpec(doubleValueSpec) + .setScaleType(ScaleType.UNIT_LINEAR_SCALE) + .build(); Double decayValues[] = {32.0, 64.0}; - DiscreteValueCondition discreteValueDecay = DiscreteValueCondition.newBuilder() - .addAllValues(Arrays.asList(decayValues)) - .build(); - ConditionalParameterSpec conditionalParameterDecay = ConditionalParameterSpec.newBuilder() - .setParameterSpec(parameterDecaySpec) - .setParentDiscreteValues(discreteValueDecay) - .build(); + DiscreteValueCondition discreteValueDecay = + DiscreteValueCondition.newBuilder().addAllValues(Arrays.asList(decayValues)).build(); + ConditionalParameterSpec conditionalParameterDecay = + ConditionalParameterSpec.newBuilder() + .setParameterSpec(parameterDecaySpec) + .setParentDiscreteValues(discreteValueDecay) + .build(); // learning rate - ParameterSpec parameterLearningSpec = ParameterSpec.newBuilder() - .setParameterId("learning_rate") - .setDoubleValueSpec(doubleValueSpec) // Use the same min/max as for decay - .setScaleType(ScaleType.UNIT_LINEAR_SCALE) - .build(); + ParameterSpec parameterLearningSpec = + ParameterSpec.newBuilder() + .setParameterId("learning_rate") + .setDoubleValueSpec(doubleValueSpec) // Use the same min/max as for decay + .setScaleType(ScaleType.UNIT_LINEAR_SCALE) + .build(); Double learningRateValues[] = {4.0, 8.0, 16.0}; - DiscreteValueCondition discreteValueLearning = DiscreteValueCondition.newBuilder() - .addAllValues(Arrays.asList(learningRateValues)) - .build(); - ConditionalParameterSpec conditionalParameterLearning = ConditionalParameterSpec.newBuilder() - .setParameterSpec(parameterLearningSpec) - .setParentDiscreteValues(discreteValueLearning) - .build(); + DiscreteValueCondition discreteValueLearning = + DiscreteValueCondition.newBuilder() + .addAllValues(Arrays.asList(learningRateValues)) + .build(); + ConditionalParameterSpec conditionalParameterLearning = + ConditionalParameterSpec.newBuilder() + .setParameterSpec(parameterLearningSpec) + .setParentDiscreteValues(discreteValueLearning) + .build(); // batch size Double batchSizeValues[] = {4.0, 8.0, 16.0, 32.0, 64.0, 128.0}; - DiscreteValueSpec discreteValueSpec = DiscreteValueSpec.newBuilder() - .addAllValues(Arrays.asList(batchSizeValues)) - .build(); - ParameterSpec parameter = ParameterSpec.newBuilder() - .setParameterId("batch_size") - .setDiscreteValueSpec(discreteValueSpec) - .setScaleType(ScaleType.UNIT_LINEAR_SCALE) - .addConditionalParameterSpecs(conditionalParameterDecay) - .addConditionalParameterSpecs(conditionalParameterLearning) - .build(); + DiscreteValueSpec discreteValueSpec = + DiscreteValueSpec.newBuilder().addAllValues(Arrays.asList(batchSizeValues)).build(); + ParameterSpec parameter = + ParameterSpec.newBuilder() + .setParameterId("batch_size") + .setDiscreteValueSpec(discreteValueSpec) + .setScaleType(ScaleType.UNIT_LINEAR_SCALE) + .addConditionalParameterSpecs(conditionalParameterDecay) + .addConditionalParameterSpecs(conditionalParameterLearning) + .build(); // trial_job_spec MachineSpec machineSpec = diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java index 6528c6314..7a4b4bcd4 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java @@ -103,9 +103,8 @@ static void createTrainingPipelineCustomTrainingManagedDatasetSample( .add("machineSpec", jsonMachineSpec) .add("containerSpec", jsonTrainingContainerSpec) .build(); - JsonArray jsonWorkerPoolSpecs = Json.createArrayBuilder() - .add(jsonTrainingWorkerPoolSpec) - .build(); + JsonArray jsonWorkerPoolSpecs = + Json.createArrayBuilder().add(jsonTrainingWorkerPoolSpec).build(); JsonObject jsonBaseOutputDirectory = Json.createObjectBuilder().add("outputUriPrefix", baseOutputUriPrefix).build(); JsonObject jsonTrainingTaskInputs = diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineImageClassificationSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineImageClassificationSample.java index 7327cba9b..041ec32f0 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineImageClassificationSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineImageClassificationSample.java @@ -38,12 +38,10 @@ import com.google.cloud.aiplatform.v1beta1.SampledShapleyAttribution; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineImageClassificationSample { @@ -73,7 +71,7 @@ static void createTrainingPipelineImageClassificationSample( String location = "us-central1"; String trainingTaskDefinition = "gs://google-cloud-aiplatform/schema/trainingjob/definition/" - + "automl_image_classification_1.0.0.yaml"; + + "automl_image_classification_1.0.0.yaml"; LocationName locationName = LocationName.of(project, location); String jsonString = diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineImageObjectDetectionSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineImageObjectDetectionSample.java index 636ab0224..d6b2af9ab 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineImageObjectDetectionSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineImageObjectDetectionSample.java @@ -38,12 +38,10 @@ import com.google.cloud.aiplatform.v1beta1.SampledShapleyAttribution; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineImageObjectDetectionSample { @@ -73,7 +71,7 @@ static void createTrainingPipelineImageObjectDetectionSample( String location = "us-central1"; String trainingTaskDefinition = "gs://google-cloud-aiplatform/schema/trainingjob/definition/" - + "automl_image_object_detection_1.0.0.yaml"; + + "automl_image_object_detection_1.0.0.yaml"; LocationName locationName = LocationName.of(project, location); String jsonString = diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineSample.java index 5c310bfea..2dcb6e88c 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineSample.java @@ -38,12 +38,10 @@ import com.google.cloud.aiplatform.v1beta1.SampledShapleyAttribution; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineSample { diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTabularClassificationSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTabularClassificationSample.java index de54c0a0a..92ebb6ada 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTabularClassificationSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTabularClassificationSample.java @@ -37,12 +37,10 @@ import com.google.cloud.aiplatform.v1beta1.SampledShapleyAttribution; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineTabularClassificationSample { diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTabularRegressionSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTabularRegressionSample.java index ca24862ca..0043fdf52 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTabularRegressionSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTabularRegressionSample.java @@ -37,12 +37,10 @@ import com.google.cloud.aiplatform.v1beta1.SampledShapleyAttribution; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineTabularRegressionSample { diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextClassificationSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextClassificationSample.java index c67e49a05..b5335a4c7 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextClassificationSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextClassificationSample.java @@ -38,12 +38,10 @@ import com.google.cloud.aiplatform.v1beta1.SampledShapleyAttribution; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineTextClassificationSample { @@ -74,7 +72,7 @@ static void createTrainingPipelineTextClassificationSample( String location = "us-central1"; String trainingTaskDefinition = "gs://google-cloud-aiplatform/schema/trainingjob/definition/" - + "automl_text_classification_1.0.0.yaml"; + + "automl_text_classification_1.0.0.yaml"; String jsonString = "{\"multiLabel\": false}"; LocationName locationName = LocationName.of(project, location); diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextEntityExtractionSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextEntityExtractionSample.java index 3aef27086..9d83a4d1e 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextEntityExtractionSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextEntityExtractionSample.java @@ -38,12 +38,10 @@ import com.google.cloud.aiplatform.v1beta1.SampledShapleyAttribution; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineTextEntityExtractionSample { @@ -74,7 +72,7 @@ static void createTrainingPipelineTextEntityExtractionSample( String location = "us-central1"; String trainingTaskDefinition = "gs://google-cloud-aiplatform/schema/trainingjob/definition/" - + "automl_text_extraction_1.0.0.yaml"; + + "automl_text_extraction_1.0.0.yaml"; String jsonString = "{}"; LocationName locationName = LocationName.of(project, location); diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextSentimentAnalysisSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextSentimentAnalysisSample.java index a6139405d..f9c656ad0 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextSentimentAnalysisSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineTextSentimentAnalysisSample.java @@ -38,12 +38,10 @@ import com.google.cloud.aiplatform.v1beta1.SampledShapleyAttribution; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineTextSentimentAnalysisSample { @@ -74,7 +72,7 @@ static void createTrainingPipelineTextSentimentAnalysisSample( String location = "us-central1"; String trainingTaskDefinition = "gs://google-cloud-aiplatform/schema/trainingjob/definition/" - + "automl_text_sentiment_1.0.0.yaml"; + + "automl_text_sentiment_1.0.0.yaml"; // Sentiment max must be between 1 and 10 inclusive. // Higher value means positive sentiment. diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoClassificationSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoClassificationSample.java index 383e56954..eacbc5123 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoClassificationSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoClassificationSample.java @@ -28,11 +28,9 @@ import com.google.cloud.aiplatform.v1beta1.PredefinedSplit; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineVideoClassificationSample { @@ -67,7 +65,7 @@ static void createTrainingPipelineVideoClassification( LocationName locationName = LocationName.of(project, location); String trainingTaskDefinition = "gs://google-cloud-aiplatform/schema/trainingjob/definition/" - + "automl_video_classification_1.0.0.yaml"; + + "automl_video_classification_1.0.0.yaml"; InputDataConfig inputDataConfig = InputDataConfig.newBuilder().setDatasetId(datasetId).build(); diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoObjectTrackingSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoObjectTrackingSample.java index d49fcff96..a8e5ee149 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoObjectTrackingSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoObjectTrackingSample.java @@ -28,12 +28,10 @@ import com.google.cloud.aiplatform.v1beta1.PredefinedSplit; import com.google.cloud.aiplatform.v1beta1.TimestampSplit; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; -import com.google.protobuf.Any; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import com.google.rpc.Status; import java.io.IOException; -import java.util.List; public class CreateTrainingPipelineVideoObjectTrackingSample { @@ -66,7 +64,7 @@ static void createTrainingPipelineVideoObjectTracking( String location = "us-central1"; String trainingTaskDefinition = "gs://google-cloud-aiplatform/schema/trainingjob/definition/" - + "automl_video_object_tracking_1.0.0.yaml"; + + "automl_video_object_tracking_1.0.0.yaml"; LocationName locationName = LocationName.of(project, location); String jsonString = "{\"modelType\": \"CLOUD\"}"; diff --git a/samples/snippets/src/main/java/aiplatform/DeleteDatasetSample.java b/samples/snippets/src/main/java/aiplatform/DeleteDatasetSample.java index a9989b564..39ad52d0f 100644 --- a/samples/snippets/src/main/java/aiplatform/DeleteDatasetSample.java +++ b/samples/snippets/src/main/java/aiplatform/DeleteDatasetSample.java @@ -59,7 +59,7 @@ static void deleteDatasetSample(String project, String datasetId) System.out.format("Operation name: %s\n", operationFuture.getInitialFuture().get().getName()); System.out.println("Waiting for operation to finish..."); operationFuture.get(300, TimeUnit.SECONDS); - + System.out.format("Deleted Dataset."); } } diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataImageClassificationSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataImageClassificationSample.java index 04beb8c54..7bc46c447 100644 --- a/samples/snippets/src/main/java/aiplatform/ImportDataImageClassificationSample.java +++ b/samples/snippets/src/main/java/aiplatform/ImportDataImageClassificationSample.java @@ -61,7 +61,7 @@ static void importDataImageClassificationSample( String location = "us-central1"; String importSchemaUri = "gs://google-cloud-aiplatform/schema/dataset/ioformat/" - + "image_classification_single_label_io_format_1.0.0.yaml"; + + "image_classification_single_label_io_format_1.0.0.yaml"; GcsSource.Builder gcsSource = GcsSource.newBuilder(); gcsSource.addUris(gcsSourceUri); @@ -81,8 +81,8 @@ static void importDataImageClassificationSample( System.out.println("Waiting for operation to finish..."); ImportDataResponse importDataResponse = importDataResponseFuture.get(300, TimeUnit.SECONDS); - System.out.format("Import Data Image Classification Response: %s\n", - importDataResponse.toString()); + System.out.format( + "Import Data Image Classification Response: %s\n", importDataResponse.toString()); } } } diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataImageObjectDetectionSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataImageObjectDetectionSample.java index ae17cfd3a..947b3f232 100644 --- a/samples/snippets/src/main/java/aiplatform/ImportDataImageObjectDetectionSample.java +++ b/samples/snippets/src/main/java/aiplatform/ImportDataImageObjectDetectionSample.java @@ -61,7 +61,7 @@ static void importDataImageObjectDetectionSample( String location = "us-central1"; String importSchemaUri = "gs://google-cloud-aiplatform/schema/dataset/ioformat/" - + "image_bounding_box_io_format_1.0.0.yaml"; + + "image_bounding_box_io_format_1.0.0.yaml"; GcsSource.Builder gcsSource = GcsSource.newBuilder(); gcsSource.addUris(gcsSourceUri); DatasetName datasetName = DatasetName.of(project, location, datasetId); @@ -80,8 +80,8 @@ static void importDataImageObjectDetectionSample( System.out.println("Waiting for operation to finish..."); ImportDataResponse importDataResponse = importDataResponseFuture.get(300, TimeUnit.SECONDS); - System.out.format("Import Data Image Object Detection Response: %s\n", - importDataResponse.toString()); + System.out.format( + "Import Data Image Object Detection Response: %s\n", importDataResponse.toString()); } } } diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataTextClassificationSingleLabelSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataTextClassificationSingleLabelSample.java index cf08bd38a..8c285a1b6 100644 --- a/samples/snippets/src/main/java/aiplatform/ImportDataTextClassificationSingleLabelSample.java +++ b/samples/snippets/src/main/java/aiplatform/ImportDataTextClassificationSingleLabelSample.java @@ -62,7 +62,7 @@ static void importDataTextClassificationSingleLabelSample( String location = "us-central1"; String importSchemaUri = "gs://google-cloud-aiplatform/schema/dataset/ioformat/" - + "text_classification_single_label_io_format_1.0.0.yaml"; + + "text_classification_single_label_io_format_1.0.0.yaml"; GcsSource.Builder gcsSource = GcsSource.newBuilder(); gcsSource.addUris(gcsSourceUri); @@ -82,8 +82,8 @@ static void importDataTextClassificationSingleLabelSample( System.out.println("Waiting for operation to finish..."); ImportDataResponse importDataResponse = importDataResponseFuture.get(300, TimeUnit.SECONDS); - System.out.format("Import Data Text Classification Response: %s\n", - importDataResponse.toString()); + System.out.format( + "Import Data Text Classification Response: %s\n", importDataResponse.toString()); } } } diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataTextEntityExtractionSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataTextEntityExtractionSample.java index 6bd5c4f02..be53db261 100644 --- a/samples/snippets/src/main/java/aiplatform/ImportDataTextEntityExtractionSample.java +++ b/samples/snippets/src/main/java/aiplatform/ImportDataTextEntityExtractionSample.java @@ -61,7 +61,7 @@ static void importDataTextEntityExtractionSample( String location = "us-central1"; String importSchemaUri = "gs://google-cloud-aiplatform/schema/dataset/ioformat/" - + "text_extraction_io_format_1.0.0.yaml"; + + "text_extraction_io_format_1.0.0.yaml"; GcsSource.Builder gcsSource = GcsSource.newBuilder(); gcsSource.addUris(gcsSourceUri); @@ -81,8 +81,8 @@ static void importDataTextEntityExtractionSample( System.out.println("Waiting for operation to finish..."); ImportDataResponse importDataResponse = importDataResponseFuture.get(300, TimeUnit.SECONDS); - System.out.format("Import Data Text Entity Extraction Response: %s\n", - importDataResponse.toString()); + System.out.format( + "Import Data Text Entity Extraction Response: %s\n", importDataResponse.toString()); } } } diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataTextSentimentAnalysisSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataTextSentimentAnalysisSample.java index e17506783..4634d6f64 100644 --- a/samples/snippets/src/main/java/aiplatform/ImportDataTextSentimentAnalysisSample.java +++ b/samples/snippets/src/main/java/aiplatform/ImportDataTextSentimentAnalysisSample.java @@ -62,7 +62,7 @@ static void importDataTextSentimentAnalysisSample( String location = "us-central1"; String importSchemaUri = "gs://google-cloud-aiplatform/schema/dataset/ioformat/" - + "text_sentiment_io_format_1.0.0.yaml"; + + "text_sentiment_io_format_1.0.0.yaml"; GcsSource.Builder gcsSource = GcsSource.newBuilder(); gcsSource.addUris(gcsSourceUri); @@ -82,8 +82,8 @@ static void importDataTextSentimentAnalysisSample( System.out.println("Waiting for operation to finish..."); ImportDataResponse importDataResponse = importDataResponseFuture.get(300, TimeUnit.SECONDS); - System.out.format("Import Data Text Sentiment Analysis Response: %s\n", - importDataResponse.toString()); + System.out.format( + "Import Data Text Sentiment Analysis Response: %s\n", importDataResponse.toString()); } } } diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataVideoClassificationSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataVideoClassificationSample.java index 4bf2c37f3..10a7b673e 100644 --- a/samples/snippets/src/main/java/aiplatform/ImportDataVideoClassificationSample.java +++ b/samples/snippets/src/main/java/aiplatform/ImportDataVideoClassificationSample.java @@ -60,7 +60,7 @@ static void importDataVideoClassification(String gcsSourceUri, String project, S String location = "us-central1"; String importSchemaUri = "gs://google-cloud-aiplatform/schema/dataset/ioformat/" - + "video_classification_io_format_1.0.0.yaml"; + + "video_classification_io_format_1.0.0.yaml"; GcsSource.Builder gcsSource = GcsSource.newBuilder(); gcsSource.addUris(gcsSourceUri); @@ -81,8 +81,7 @@ static void importDataVideoClassification(String gcsSourceUri, String project, S ImportDataResponse importDataResponse = importDataResponseFuture.get(1800, TimeUnit.SECONDS); System.out.format( - "Import Data Video Classification Response: %s\n", - importDataResponse.toString()); + "Import Data Video Classification Response: %s\n", importDataResponse.toString()); } } } diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataVideoObjectTrackingSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataVideoObjectTrackingSample.java index f8a07d914..87807c193 100644 --- a/samples/snippets/src/main/java/aiplatform/ImportDataVideoObjectTrackingSample.java +++ b/samples/snippets/src/main/java/aiplatform/ImportDataVideoObjectTrackingSample.java @@ -59,7 +59,7 @@ static void importDataVideObjectTracking(String gcsSourceUri, String project, St String location = "us-central1"; String importSchemaUri = "gs://google-cloud-aiplatform/schema/dataset/ioformat/" - + "video_object_tracking_io_format_1.0.0.yaml"; + + "video_object_tracking_io_format_1.0.0.yaml"; GcsSource.Builder gcsSource = GcsSource.newBuilder(); gcsSource.addUris(gcsSourceUri); @@ -78,8 +78,8 @@ static void importDataVideObjectTracking(String gcsSourceUri, String project, St System.out.println("Waiting for operation to finish..."); ImportDataResponse importDataResponse = importDataResponseFuture.get(300, TimeUnit.SECONDS); - System.out.format("Import Data Video Object Tracking Response: %s\n", - importDataResponse.toString()); + System.out.format( + "Import Data Video Object Tracking Response: %s\n", importDataResponse.toString()); } } } diff --git a/samples/snippets/src/test/java/aiplatform/CancelTrainingPipelineSampleTest.java b/samples/snippets/src/test/java/aiplatform/CancelTrainingPipelineSampleTest.java index 1f5066679..f3daec201 100644 --- a/samples/snippets/src/test/java/aiplatform/CancelTrainingPipelineSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CancelTrainingPipelineSampleTest.java @@ -37,7 +37,7 @@ public class CancelTrainingPipelineSampleTest { private static final String DATASET_ID = System.getenv("TRAINING_PIPELINE_DATASET_ID"); private static final String TRAINING_TASK_DEFINITION = "gs://google-cloud-aiplatform/schema/trainingjob/definition/" - + "automl_image_classification_1.0.0.yaml"; + + "automl_image_classification_1.0.0.yaml"; private static String TRAINING_PIPELINE_ID = null; private ByteArrayOutputStream bout; private PrintStream out; diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java index 4bbaa4ea6..57405d50f 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java @@ -31,81 +31,81 @@ import org.junit.Test; public class CreateBatchPredictionJobBigquerySampleTest { - private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); - private static final String MODEL_ID = System.getenv("BATCH_PREDICTION_TABULAR_BQ_MODEL_ID"); - private static final String BIGQUERY_SOURCE_URI = - "bq://ucaip-sample-tests.table_test.all_bq_types"; - private static final String BIGQUERY_DESTINATION_OUTPUT_URI_PREFIX = "bq://ucaip-sample-tests"; - private ByteArrayOutputStream bout; - private PrintStream out; - private PrintStream originalPrintStream; - private String batchPredictionJobId; - - private static void requireEnvVar(String varName) { - String errorMessage = - String.format("Environment variable '%s' is required to perform these tests.", varName); - assertNotNull(errorMessage, System.getenv(varName)); - } + private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); + private static final String MODEL_ID = System.getenv("BATCH_PREDICTION_TABULAR_BQ_MODEL_ID"); + private static final String BIGQUERY_SOURCE_URI = + "bq://ucaip-sample-tests.table_test.all_bq_types"; + private static final String BIGQUERY_DESTINATION_OUTPUT_URI_PREFIX = "bq://ucaip-sample-tests"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private String batchPredictionJobId; - @BeforeClass - public static void checkRequirements() { - requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); - requireEnvVar("UCAIP_PROJECT_ID"); - requireEnvVar("BATCH_PREDICTION_TABULAR_BQ_MODEL_ID"); - } + private static void requireEnvVar(String varName) { + String errorMessage = + String.format("Environment variable '%s' is required to perform these tests.", varName); + assertNotNull(errorMessage, System.getenv(varName)); + } - @Before - public void setUp() { - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - originalPrintStream = System.out; - System.setOut(out); - } + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("UCAIP_PROJECT_ID"); + requireEnvVar("BATCH_PREDICTION_TABULAR_BQ_MODEL_ID"); + } - @After - public void tearDown() - throws InterruptedException, ExecutionException, IOException, TimeoutException { - CancelBatchPredictionJobSample.cancelBatchPredictionJobSample(PROJECT, batchPredictionJobId); + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } - // Assert - String cancelResponse = bout.toString(); - assertThat(cancelResponse).contains("Cancelled the Batch Prediction Job"); - TimeUnit.MINUTES.sleep(2); + @After + public void tearDown() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + CancelBatchPredictionJobSample.cancelBatchPredictionJobSample(PROJECT, batchPredictionJobId); - // Delete the Batch Prediction Job - DeleteBatchPredictionJobSample.deleteBatchPredictionJobSample(PROJECT, batchPredictionJobId); + // Assert + String cancelResponse = bout.toString(); + assertThat(cancelResponse).contains("Cancelled the Batch Prediction Job"); + TimeUnit.MINUTES.sleep(2); - // Assert - String deleteResponse = bout.toString(); - assertThat(deleteResponse).contains("Deleted Batch"); - System.out.flush(); - System.setOut(originalPrintStream); - } + // Delete the Batch Prediction Job + DeleteBatchPredictionJobSample.deleteBatchPredictionJobSample(PROJECT, batchPredictionJobId); - @Test - public void testCreateBatchPredictionJobBigquerySample() throws IOException { - // Act - String batchPredictionDisplayName = - String.format( - "batch_prediction_bigquery_display_name_%s", - UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); + // Assert + String deleteResponse = bout.toString(); + assertThat(deleteResponse).contains("Deleted Batch"); + System.out.flush(); + System.setOut(originalPrintStream); + } - String modelName = String.format("projects/%s/locations/us-central1/models/%s", - PROJECT, MODEL_ID); + @Test + public void testCreateBatchPredictionJobBigquerySample() throws IOException { + // Act + String batchPredictionDisplayName = + String.format( + "batch_prediction_bigquery_display_name_%s", + UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - CreateBatchPredictionJobBigquerySample.createBatchPredictionJobBigquerySample( - PROJECT, - batchPredictionDisplayName, - modelName, - "bigquery", - BIGQUERY_SOURCE_URI, - "bigquery", - BIGQUERY_DESTINATION_OUTPUT_URI_PREFIX); + String modelName = + String.format("projects/%s/locations/us-central1/models/%s", PROJECT, MODEL_ID); - // Assert - String got = bout.toString(); - assertThat(got).contains(batchPredictionDisplayName); - assertThat(got).contains("response:"); - batchPredictionJobId = got.split("Name: ")[1].split("batchPredictionJobs/")[1].split("\n")[0]; - } + CreateBatchPredictionJobBigquerySample.createBatchPredictionJobBigquerySample( + PROJECT, + batchPredictionDisplayName, + modelName, + "bigquery", + BIGQUERY_SOURCE_URI, + "bigquery", + BIGQUERY_DESTINATION_OUTPUT_URI_PREFIX); + + // Assert + String got = bout.toString(); + assertThat(got).contains(batchPredictionDisplayName); + assertThat(got).contains("response:"); + batchPredictionJobId = got.split("Name: ")[1].split("batchPredictionJobs/")[1].split("\n")[0]; + } } diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java index 66420ac7d..2f784e2f3 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java @@ -90,8 +90,8 @@ public void testCreateBatchPredictionJobSample() throws IOException { "batch_prediction_bigquery_display_name_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - String modelName = String.format("projects/%s/locations/us-central1/models/%s", - PROJECT, MODEL_ID); + String modelName = + String.format("projects/%s/locations/us-central1/models/%s", PROJECT, MODEL_ID); CreateBatchPredictionJobSample.createBatchPredictionJobSample( PROJECT, diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java index 10c6381cd..ee758b528 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java @@ -32,7 +32,8 @@ public class CreateBatchPredictionJobVideoActionRecognitionSampleTest { private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); - private static final String MODEL_ID = System.getenv("BATCH_PREDICTION_VIDEO_ACTION_RECOGNITION_MODEL_ID"); + private static final String MODEL_ID = + System.getenv("BATCH_PREDICTION_VIDEO_ACTION_RECOGNITION_MODEL_ID"); private static final String GCS_SOURCE_URI = "gs://ucaip-samples-test-output/inputs/icn_batch_prediction_input.jsonl"; private static final String GCS_OUTPUT_URI = "gs://ucaip-samples-test-output/"; @@ -90,15 +91,12 @@ public void testCreateBatchPredictionJobVideoActionRecognitionSample() throws IO "batch_prediction_video_action_recognition_display_name_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - String modelName = String.format("projects/%s/locations/us-central1/models/%s", - PROJECT, MODEL_ID); + String modelName = + String.format("projects/%s/locations/us-central1/models/%s", PROJECT, MODEL_ID); - CreateBatchPredictionJobVideoActionRecognitionSample.createBatchPredictionJobVideoActionRecognitionSample( - PROJECT, - batchPredictionDisplayName, - modelName, - GCS_SOURCE_URI, - GCS_OUTPUT_URI); + CreateBatchPredictionJobVideoActionRecognitionSample + .createBatchPredictionJobVideoActionRecognitionSample( + PROJECT, batchPredictionDisplayName, modelName, GCS_SOURCE_URI, GCS_OUTPUT_URI); // Assert String got = bout.toString(); diff --git a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java index 13b78952f..8b4abcfea 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java @@ -34,10 +34,12 @@ public class CreateDataLabelingJobActiveLearningSampleTest { private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); - private static final String DATASET_ID = System.getenv("DATA_LABELING_ACTIVE_LEARNING_DATASET_ID"); + private static final String DATASET_ID = + System.getenv("DATA_LABELING_ACTIVE_LEARNING_DATASET_ID"); private static final String INSTRUCTION_URI = "gs://ucaip-sample-resources/images/datalabeling_instructions.pdf"; - private static final String INPUTS_SCHEMA_URI = "gs://google-cloud-aiplatform/schema/datalabelingjob/inputs/image_classification_1.0.0.yaml"; + private static final String INPUTS_SCHEMA_URI = + "gs://google-cloud-aiplatform/schema/datalabelingjob/inputs/image_classification_1.0.0.yaml"; private static final String ANNOTATION_SPEC = "roses"; private ByteArrayOutputStream bout; private PrintStream out; @@ -100,7 +102,7 @@ public void testCreateDataLabelingJobActiveLearningSample() throws IOException { dataLabelingDisplayName, DATASET_ID, INSTRUCTION_URI, - INPUTS_SCHEMA_URI , + INPUTS_SCHEMA_URI, ANNOTATION_SPEC); // Assert diff --git a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java index d0322de41..eb8a90062 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java @@ -33,11 +33,14 @@ public class CreateDataLabelingJobSpecialistPoolSampleTest { private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); - private static final String DATASET_ID = System.getenv("DATA_LABELING_ACTIVE_LEARNING_DATASET_ID"); - private static final String SPECIALIST_POOL_ID = System.getenv("DATA_LABELING_SPECIALIST_POOL_ID"); + private static final String DATASET_ID = + System.getenv("DATA_LABELING_ACTIVE_LEARNING_DATASET_ID"); + private static final String SPECIALIST_POOL_ID = + System.getenv("DATA_LABELING_SPECIALIST_POOL_ID"); private static final String INSTRUCTION_URI = "gs://ucaip-sample-resources/images/datalabeling_instructions.pdf"; - private static final String INPUTS_SCHEMA_URI = "gs://google-cloud-aiplatform/schema/datalabelingjob/inputs/image_classification_1.0.0.yaml"; + private static final String INPUTS_SCHEMA_URI = + "gs://google-cloud-aiplatform/schema/datalabelingjob/inputs/image_classification_1.0.0.yaml"; private static final String ANNOTATION_SPEC = "roses"; private ByteArrayOutputStream bout; private PrintStream out; @@ -96,7 +99,6 @@ public void testCreateDataLabelingJobSpecialistPoolSample() throws IOException { "temp_data_labeling_job_specialist_pool_display_name_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - CreateDataLabelingJobSpecialistPoolSample.createDataLabelingJobSpecialistPoolSample( PROJECT, dataLabelingDisplayName, @@ -106,7 +108,6 @@ public void testCreateDataLabelingJobSpecialistPoolSample() throws IOException { INPUTS_SCHEMA_URI, ANNOTATION_SPEC); - // Assert String got = bout.toString(); assertThat(got).contains(dataLabelingDisplayName); diff --git a/samples/snippets/src/test/java/aiplatform/CreateDatasetTabularGcsSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateDatasetTabularGcsSampleTest.java index 10a26a5e1..7592b9aae 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateDatasetTabularGcsSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateDatasetTabularGcsSampleTest.java @@ -81,8 +81,8 @@ public void testCreateDatasetTabularGcsSample() "temp_create_dataset_table_gcs_test_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - CreateDatasetTabularGcsSample.createDatasetTableGcs(PROJECT, - datasetDisplayName, GCS_SOURCE_URI); + CreateDatasetTabularGcsSample.createDatasetTableGcs( + PROJECT, datasetDisplayName, GCS_SOURCE_URI); // Assert String got = bout.toString(); diff --git a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java index f98a806e3..71f716102 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java @@ -35,8 +35,10 @@ public class CreateHyperparameterTuningJobPythonPackageSampleTest { private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); - private static final String EXECUTOR_IMAGE_URI = "us.gcr.io/cloud-aiplatform/training/tf-gpu.2-1:latest"; - private static final String PACKAGE_URI = "gs://ucaip-test-us-central1/training/pythonpackages/trainer.tar.bz2"; + private static final String EXECUTOR_IMAGE_URI = + "us.gcr.io/cloud-aiplatform/training/tf-gpu.2-1:latest"; + private static final String PACKAGE_URI = + "gs://ucaip-test-us-central1/training/pythonpackages/trainer.tar.bz2"; private static final String PYTHON_MODULE = "trainer.hptuning_trainer"; private ByteArrayOutputStream bout; private PrintStream out; @@ -74,9 +76,9 @@ public void tearDown() try (JobServiceClient client = JobServiceClient.create(settings)) { // Cancel hyper parameter job String hyperparameterJobName = - String.format("projects/%s/locations/us-central1/hyperparameterTuningJobs/%s", - PROJECT, - hyperparameterJobId); + String.format( + "projects/%s/locations/us-central1/hyperparameterTuningJobs/%s", + PROJECT, hyperparameterJobId); client.cancelHyperparameterTuningJob(hyperparameterJobName); TimeUnit.MINUTES.sleep(1); @@ -94,17 +96,19 @@ public void testCreateHyperparameterTuningJobPythonPackageSample() throws IOExce String.format( "temp_hyperparameter_tuning_job_display_name_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - CreateHyperparameterTuningJobPythonPackageSample.createHyperparameterTuningJobPythonPackageSample( - PROJECT, - hyperparameterTuningJobDisplayName, - EXECUTOR_IMAGE_URI, - PACKAGE_URI, - PYTHON_MODULE); + CreateHyperparameterTuningJobPythonPackageSample + .createHyperparameterTuningJobPythonPackageSample( + PROJECT, + hyperparameterTuningJobDisplayName, + EXECUTOR_IMAGE_URI, + PACKAGE_URI, + PYTHON_MODULE); // Assert String got = bout.toString(); assertThat(got).contains(hyperparameterTuningJobDisplayName); assertThat(got).contains("response:"); - hyperparameterJobId = got.split("Name: ")[1].split("hyperparameterTuningJobs/")[1].split("\n")[0]; + hyperparameterJobId = + got.split("Name: ")[1].split("hyperparameterTuningJobs/")[1].split("\n")[0]; } } diff --git a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java index 460bde65e..e1250a0ae 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java @@ -32,7 +32,6 @@ import org.junit.BeforeClass; import org.junit.Test; - public class CreateHyperparameterTuningJobSampleTest { private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); private static final String CONTAINER_IMAGE_URI = "gcr.io/ucaip-test/ucaip-training-test:latest"; @@ -72,9 +71,9 @@ public void tearDown() try (JobServiceClient client = JobServiceClient.create(settings)) { // Cancel hyper parameter job String hyperparameterJobName = - String.format("projects/%s/locations/us-central1/hyperparameterTuningJobs/%s", - PROJECT, - hyperparameterJobId); + String.format( + "projects/%s/locations/us-central1/hyperparameterTuningJobs/%s", + PROJECT, hyperparameterJobId); client.cancelHyperparameterTuningJob(hyperparameterJobName); TimeUnit.MINUTES.sleep(1); @@ -94,16 +93,12 @@ public void testCreateHyperparameterTuningJobSample() throws IOException { UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); CreateHyperparameterTuningJobSample.createHyperparameterTuningJobSample( - PROJECT, - hyperparameterTuningJobDisplayName, - CONTAINER_IMAGE_URI - ); + PROJECT, hyperparameterTuningJobDisplayName, CONTAINER_IMAGE_URI); String got = bout.toString(); assertThat(got).contains(hyperparameterTuningJobDisplayName); assertThat(got).contains("response:"); - hyperparameterJobId = got.split("Name: ")[1].split("hyperparameterTuningJobs/")[1].split("\n")[0]; - + hyperparameterJobId = + got.split("Name: ")[1].split("hyperparameterTuningJobs/")[1].split("\n")[0]; } - } diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java index 55c75f4b2..53e6e79ad 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java @@ -33,8 +33,10 @@ public class CreateTrainingPipelineCustomJobSampleTest { private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); - private static final String CONTAINER_IMAGE_URI = "gcr.io/ucaip-sample-tests/mnist-custom-job:latest"; - private static final String GCS_OUTPUT_DIRECTORY = "gs://ucaip-samples-us-central1/training_pipeline_output"; + private static final String CONTAINER_IMAGE_URI = + "gcr.io/ucaip-sample-tests/mnist-custom-job:latest"; + private static final String GCS_OUTPUT_DIRECTORY = + "gs://ucaip-samples-us-central1/training_pipeline_output"; private ByteArrayOutputStream bout; private PrintStream out; private PrintStream originalPrintStream; @@ -99,8 +101,7 @@ public void testCreateTrainingPipelineCustomJobSample() throws IOException { trainingPipelineDisplayName, modelDisplayName, CONTAINER_IMAGE_URI, - GCS_OUTPUT_DIRECTORY - ); + GCS_OUTPUT_DIRECTORY); // Assert String got = bout.toString(); diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java index c19e6f692..79ee60adf 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java @@ -33,10 +33,14 @@ public class CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest { private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); private static final String DATASET_ID = System.getenv("CUSTOM_MANAGED_DATASET"); - private static final String ANNOTATION_SCHEMA_URI = "gs://google-cloud-aiplatform/schema/dataset/annotation/image_classification_1.0.0.yaml"; - private static final String TRAINING_CONTAINER_IMAGE_URI = "gcr.io/ucaip-test/custom-container-managed-dataset:latest"; - private static final String MODEL_CONTAIN_SPEC_IMAGE_URI = "gcr.io/cloud-aiplatform/prediction/tf-gpu.1-15:latest"; - private static final String GCS_OUTPUT_DIRECTORY = "gs://ucaip-samples-us-central1/training_pipeline_output/custom_training_managed_dataset"; + private static final String ANNOTATION_SCHEMA_URI = + "gs://google-cloud-aiplatform/schema/dataset/annotation/image_classification_1.0.0.yaml"; + private static final String TRAINING_CONTAINER_IMAGE_URI = + "gcr.io/ucaip-test/custom-container-managed-dataset:latest"; + private static final String MODEL_CONTAIN_SPEC_IMAGE_URI = + "gcr.io/cloud-aiplatform/prediction/tf-gpu.1-15:latest"; + private static final String GCS_OUTPUT_DIRECTORY = + "gs://ucaip-samples-us-central1/training_pipeline_output/custom_training_managed_dataset"; private ByteArrayOutputStream bout; private PrintStream out; private PrintStream originalPrintStream; @@ -96,16 +100,16 @@ public void testCreateTrainingPipelineCustomTrainingManagedDatasetSample() throw "temp_create_training_pipeline_model_test_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - CreateTrainingPipelineCustomTrainingManagedDatasetSample.createTrainingPipelineCustomTrainingManagedDatasetSample( - PROJECT, - trainingPipelineDisplayName, - modelDisplayName, - DATASET_ID, - ANNOTATION_SCHEMA_URI, - TRAINING_CONTAINER_IMAGE_URI, - MODEL_CONTAIN_SPEC_IMAGE_URI, - GCS_OUTPUT_DIRECTORY - ); + CreateTrainingPipelineCustomTrainingManagedDatasetSample + .createTrainingPipelineCustomTrainingManagedDatasetSample( + PROJECT, + trainingPipelineDisplayName, + modelDisplayName, + DATASET_ID, + ANNOTATION_SCHEMA_URI, + TRAINING_CONTAINER_IMAGE_URI, + MODEL_CONTAIN_SPEC_IMAGE_URI, + GCS_OUTPUT_DIRECTORY); // Assert String got = bout.toString(); diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTabularClassificationSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTabularClassificationSampleTest.java index 65f7d041b..f8bc4769a 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTabularClassificationSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTabularClassificationSampleTest.java @@ -39,21 +39,21 @@ public class CreateTrainingPipelineTabularClassificationSampleTest { private static final String TARGET_COLUMN = "TripType"; private static final String TRANSFORMATION = "[{\"numeric\":{\"columnName\":\"Age\",\"invalidValuesAllowed\":false}}," - + "{\"categorical\":{\"columnName\":\"Job\"}}," - + "{\"categorical\":{\"columnName\":\"MaritalStatus\"}}," - + "{\"categorical\":{\"columnName\":\"Default\"}}," - + "{\"numeric\":{\"columnName\":\"Balance\",\"invalidValuesAllowed\":false}}," - + "{\"categorical\":{\"columnName\":\"Housing\"}}," - + "{\"categorical\":{\"columnName\":\"Loan\"}}," - + "{\"categorical\":{\"columnName\":\"Contact\"}}," - + "{\"numeric\":{\"columnName\":\"Day\",\"invalidValuesAllowed\":false}}," - + "{\"categorical\":{\"columnName\":\"Month\"}}," - + "{\"numeric\":{\"columnName\":\"Duration\",\"invalidValuesAllowed\":false}}," - + "{\"numeric\":{\"columnName\":\"Campaign\",\"invalidValuesAllowed\":false}}," - + "{\"numeric\":{\"columnName\":\"PDays\",\"invalidValuesAllowed\":false}}," - + "{\"numeric\":{\"columnName\":\"Previous\",\"invalidValuesAllowed\":false}}," - + "{\"categorical\":{\"columnName\":\"POutcome\"}}," - + "{\"categorical\":{\"columnName\":\"Deposit\"}}]"; + + "{\"categorical\":{\"columnName\":\"Job\"}}," + + "{\"categorical\":{\"columnName\":\"MaritalStatus\"}}," + + "{\"categorical\":{\"columnName\":\"Default\"}}," + + "{\"numeric\":{\"columnName\":\"Balance\",\"invalidValuesAllowed\":false}}," + + "{\"categorical\":{\"columnName\":\"Housing\"}}," + + "{\"categorical\":{\"columnName\":\"Loan\"}}," + + "{\"categorical\":{\"columnName\":\"Contact\"}}," + + "{\"numeric\":{\"columnName\":\"Day\",\"invalidValuesAllowed\":false}}," + + "{\"categorical\":{\"columnName\":\"Month\"}}," + + "{\"numeric\":{\"columnName\":\"Duration\",\"invalidValuesAllowed\":false}}," + + "{\"numeric\":{\"columnName\":\"Campaign\",\"invalidValuesAllowed\":false}}," + + "{\"numeric\":{\"columnName\":\"PDays\",\"invalidValuesAllowed\":false}}," + + "{\"numeric\":{\"columnName\":\"Previous\",\"invalidValuesAllowed\":false}}," + + "{\"categorical\":{\"columnName\":\"POutcome\"}}," + + "{\"categorical\":{\"columnName\":\"Deposit\"}}]"; private ByteArrayOutputStream bout; private PrintStream out; private PrintStream originalPrintStream; diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTabularRegressionSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTabularRegressionSampleTest.java index 3933106f3..3298e0eba 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTabularRegressionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTabularRegressionSampleTest.java @@ -35,23 +35,23 @@ public class CreateTrainingPipelineTabularRegressionSampleTest { private static final String PROJECT = System.getenv("UCAIP_PROJECT_ID"); private static final String DATASET_ID = - System.getenv("TRAINING_PIPELINE_TABLES_REGRESSION_DATASET_ID"); + System.getenv("TRAINING_PIPELINE_TABLES_REGRESSION_DATASET_ID"); private static final String TARGET_COLUMN = "Amount"; private static final String TRANSFORMATION = "[{\"categorical\":{\"columnName\":\"SC_Group_Desc\"}}," - + "{\"categorical\":{\"columnName\":\"SC_GroupCommod_ID\"}}," - + "{\"categorical\":{\"columnName\":\"SC_GroupCommod_Desc\"}}," - + "{\"numeric\":{\"columnName\":\"SortOrder\",\"invalidValuesAllowed\":false}}," - + "{\"text\":{\"columnName\":\"SC_GeographyIndented_Desc\"}}," - + "{\"numeric\":{\"columnName\":\"SC_Commodity_ID\",\"invalidValuesAllowed\":false}}," - + "{\"text\":{\"columnName\":\"SC_Commodity_Desc\"}}," - + "{\"numeric\":{\"columnName\":\"SC_Attribute_ID\",\"invalidValuesAllowed\":false}}," - + "{\"text\":{\"columnName\":\"SC_Attribute_Desc\"}}," - + "{\"numeric\":{\"columnName\":\"SC_Unit_ID\",\"invalidValuesAllowed\":false}}," - + "{\"numeric\":{\"columnName\":\"Year_ID\",\"invalidValuesAllowed\":false}}," - + "{\"categorical\":{\"columnName\":\"SC_Frequency_Desc\"}}," - + "{\"numeric\":{\"columnName\":\"Timeperiod_ID\",\"invalidValuesAllowed\":false}}," - + "{\"text\":{\"columnName\":\"Timeperiod_Desc\"}}]"; + + "{\"categorical\":{\"columnName\":\"SC_GroupCommod_ID\"}}," + + "{\"categorical\":{\"columnName\":\"SC_GroupCommod_Desc\"}}," + + "{\"numeric\":{\"columnName\":\"SortOrder\",\"invalidValuesAllowed\":false}}," + + "{\"text\":{\"columnName\":\"SC_GeographyIndented_Desc\"}}," + + "{\"numeric\":{\"columnName\":\"SC_Commodity_ID\",\"invalidValuesAllowed\":false}}," + + "{\"text\":{\"columnName\":\"SC_Commodity_Desc\"}}," + + "{\"numeric\":{\"columnName\":\"SC_Attribute_ID\",\"invalidValuesAllowed\":false}}," + + "{\"text\":{\"columnName\":\"SC_Attribute_Desc\"}}," + + "{\"numeric\":{\"columnName\":\"SC_Unit_ID\",\"invalidValuesAllowed\":false}}," + + "{\"numeric\":{\"columnName\":\"Year_ID\",\"invalidValuesAllowed\":false}}," + + "{\"categorical\":{\"columnName\":\"SC_Frequency_Desc\"}}," + + "{\"numeric\":{\"columnName\":\"Timeperiod_ID\",\"invalidValuesAllowed\":false}}," + + "{\"text\":{\"columnName\":\"Timeperiod_Desc\"}}]"; private ByteArrayOutputStream bout; private PrintStream out; private PrintStream originalPrintStream; diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTextSentimentAnalysisSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTextSentimentAnalysisSampleTest.java index bd0f29461..f4e99b2a5 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTextSentimentAnalysisSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineTextSentimentAnalysisSampleTest.java @@ -90,14 +90,10 @@ public void testCreateTrainingPipelineTextSentimentAnalysisSample() throws IOExc String tempUuid = UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26); // Act String trainingPipelineDisplayName = - String.format( - "temp_create_training_pipeline_test_%s", - tempUuid); + String.format("temp_create_training_pipeline_test_%s", tempUuid); String modelDisplayName = - String.format( - "temp_create_training_pipeline_model_test_%s", - tempUuid); + String.format("temp_create_training_pipeline_model_test_%s", tempUuid); CreateTrainingPipelineTextSentimentAnalysisSample .createTrainingPipelineTextSentimentAnalysisSample( diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java index 75f805a96..68ec8f41f 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java @@ -95,13 +95,9 @@ public void testCreateTrainingPipelineVideoActionRecognitionSample() throws IOEx "temp_create_training_pipeline_video_action_recognition_model_test_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - CreateTrainingPipelineVideoActionRecognitionSample.createTrainingPipelineVideoActionRecognitionSample( - PROJECT, - trainingPipelineDisplayName, - DATASET_ID, - modelDisplayName, - MODEL - ); + CreateTrainingPipelineVideoActionRecognitionSample + .createTrainingPipelineVideoActionRecognitionSample( + PROJECT, trainingPipelineDisplayName, DATASET_ID, modelDisplayName, MODEL); // Assert String got = bout.toString(); diff --git a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java index a1153e05d..a7ac0edef 100644 --- a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java @@ -53,8 +53,7 @@ public static void checkRequirements() { @Before public void setUp() { - modelName = String.format("projects/%s/locations/us-central1/models/%s", - PROJECT_ID, MODEL_ID); + modelName = String.format("projects/%s/locations/us-central1/models/%s", PROJECT_ID, MODEL_ID); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); originalPrintStream = System.out; @@ -68,8 +67,7 @@ public void tearDown() { } @Test - public void testDeployModelCustomTrainedModelSample() - throws TimeoutException { + public void testDeployModelCustomTrainedModelSample() throws TimeoutException { // As model deployment can take a long time, instead try to deploy a // nonexistent model and confirm that the model was not found, but other // elements of the request were valid. @@ -79,11 +77,7 @@ public void testDeployModelCustomTrainedModelSample() UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); try { DeployModelCustomTrainedModelSample.deployModelCustomTrainedModelSample( - PROJECT_ID, - ENDPOINT_ID, - modelName, - deployedModelDisplayName - ); + PROJECT_ID, ENDPOINT_ID, modelName, deployedModelDisplayName); // Assert String got = bout.toString(); assertThat(got).contains("is not found."); diff --git a/samples/snippets/src/test/java/aiplatform/DeployModelSampleTest.java b/samples/snippets/src/test/java/aiplatform/DeployModelSampleTest.java index 85c258319..766944fb7 100644 --- a/samples/snippets/src/test/java/aiplatform/DeployModelSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/DeployModelSampleTest.java @@ -25,7 +25,6 @@ import java.io.PrintStream; import java.util.UUID; import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.junit.After; import org.junit.Before; @@ -66,8 +65,7 @@ public void tearDown() { } @Test - public void testDeployModelSample() - throws TimeoutException { + public void testDeployModelSample() throws TimeoutException { // As model deployment can take a long time, instead try to deploy a // nonexistent model and confirm that the model was not found, but other // elements of the request were valid. @@ -76,8 +74,8 @@ public void testDeployModelSample() "temp_deploy_model_test_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); try { - DeployModelSample.deployModelSample(PROJECT_ID, deployedModelDisplayName, - "4366591682456584192", MODEL_ID); + DeployModelSample.deployModelSample( + PROJECT_ID, deployedModelDisplayName, "4366591682456584192", MODEL_ID); // Assert String got = bout.toString(); assertThat(got).contains("is not found."); diff --git a/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java index 6faa165d2..243021a59 100644 --- a/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java @@ -79,11 +79,7 @@ public void testExportModelVideoActionRecognitionSample() throws InterruptedException, ExecutionException, TimeoutException, IOException { // Act ExportModelVideoActionRecognitionSample.exportModelVideoActionRecognitionSample( - PROJECT, - MODEL_ID, - GCS_DESTINATION_URI_PREFIX, - EXPORT_FORMAT - ); + PROJECT, MODEL_ID, GCS_DESTINATION_URI_PREFIX, EXPORT_FORMAT); // Assert String got = bout.toString(); diff --git a/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java index 18aeeea11..6302ebc3c 100644 --- a/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java @@ -61,10 +61,9 @@ public void tearDown() { } @Test - public void testGetHyperparameterTuningJobSample() throws IOException { + public void testGetHyperparameterTuningJobSample() throws IOException { GetHyperparameterTuningJobSample.getHyperparameterTuningJobSample( - PROJECT, HYPERPARAMETER_TUNING_JOB_ID - ); + PROJECT, HYPERPARAMETER_TUNING_JOB_ID); // Assert String got = bout.toString(); diff --git a/samples/snippets/src/test/java/aiplatform/ImportDataSampleTest.java b/samples/snippets/src/test/java/aiplatform/ImportDataSampleTest.java index 72d5ad90f..dcfaceb9f 100644 --- a/samples/snippets/src/test/java/aiplatform/ImportDataSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/ImportDataSampleTest.java @@ -72,14 +72,13 @@ public void tearDown() { } @Test - public void testImportDataSample() - throws TimeoutException { + public void testImportDataSample() throws TimeoutException { // As import data into dataset can take a long time, instead try to import data into a // nonexistent dataset and confirm that the model was not found, but other // elements of the request were valid. try { ImportDataTextClassificationSingleLabelSample.importDataTextClassificationSingleLabelSample( - PROJECT, DATASET_ID, GCS_SOURCE_URI); + PROJECT, DATASET_ID, GCS_SOURCE_URI); // Assert String got = bout.toString(); assertThat(got).contains("The Dataset does not exist."); diff --git a/samples/snippets/src/test/java/aiplatform/PredictTextEntityExtractionSampleTest.java b/samples/snippets/src/test/java/aiplatform/PredictTextEntityExtractionSampleTest.java index dde83fa06..71fd8e8ba 100644 --- a/samples/snippets/src/test/java/aiplatform/PredictTextEntityExtractionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/PredictTextEntityExtractionSampleTest.java @@ -86,4 +86,3 @@ public void testPredictTextEntityExtraction() throws IOException { assertThat(got).contains("Predict Text Entity Extraction Response"); } } - diff --git a/samples/snippets/src/test/java/aiplatform/PredictTextSentimentAnalysisSampleTest.java b/samples/snippets/src/test/java/aiplatform/PredictTextSentimentAnalysisSampleTest.java index 1189e3917..d452dc945 100644 --- a/samples/snippets/src/test/java/aiplatform/PredictTextSentimentAnalysisSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/PredictTextSentimentAnalysisSampleTest.java @@ -87,4 +87,3 @@ public void testPredictTextSentimentAnalysis() throws IOException { assertThat(got).contains("Predict Text Sentiment Analysis Response"); } } - diff --git a/samples/snippets/src/test/java/aiplatform/UploadModelSampleTest.java b/samples/snippets/src/test/java/aiplatform/UploadModelSampleTest.java index 3ebae3b0d..c085f8c67 100644 --- a/samples/snippets/src/test/java/aiplatform/UploadModelSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/UploadModelSampleTest.java @@ -37,8 +37,8 @@ public class UploadModelSampleTest { private static final String METADATASCHEMA_URI = ""; private static final String IMAGE_URI = "gcr.io/cloud-ml-service-public/" - + "cloud-ml-online-prediction-model-server-cpu:" - + "v1_15py3cmle_op_images_20200229_0210_RC00"; + + "cloud-ml-online-prediction-model-server-cpu:" + + "v1_15py3cmle_op_images_20200229_0210_RC00"; private static final String ARTIFACT_URI = "gs://ucaip-samples-us-central1/model/explain/"; private ByteArrayOutputStream bout; private PrintStream out; From 46f224e84620efc5189d7e3f6aeee9cf4e26c75a Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Fri, 11 Dec 2020 13:00:00 -0800 Subject: [PATCH 04/13] fix: per linter --- .../CreateHyperparameterTuningJobPythonPackageSample.java | 6 +++--- .../CreateBatchPredictionJobBigquerySampleTest.java | 1 + .../java/aiplatform/CreateBatchPredictionJobSampleTest.java | 1 + ...eBatchPredictionJobVideoActionRecognitionSampleTest.java | 1 + .../CreateDataLabelingJobActiveLearningSampleTest.java | 1 + .../CreateDataLabelingJobSpecialistPoolSampleTest.java | 1 + ...reateHyperparameterTuningJobPythonPackageSampleTest.java | 1 + .../aiplatform/CreateHyperparameterTuningJobSampleTest.java | 1 + .../CreateTrainingPipelineCustomJobSampleTest.java | 1 + ...iningPipelineCustomTrainingManagedDatasetSampleTest.java | 1 + ...ateTrainingPipelineVideoActionRecognitionSampleTest.java | 1 + .../aiplatform/DeployModelCustomTrainedModelSampleTest.java | 1 + .../ExportModelVideoActionRecognitionSampleTest.java | 1 + .../aiplatform/GetHyperparameterTuningJobSampleTest.java | 1 + .../GetModelEvaluationVideoActionRecognitionSampleTest.java | 1 + .../ImportDataVideoActionRecognitionSampleTest.java | 1 + 16 files changed, 18 insertions(+), 3 deletions(-) diff --git a/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java index 4c3254134..9d1937f3d 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSample.java @@ -81,7 +81,7 @@ static void createHyperparameterTuningJobPythonPackageSample( .setDoubleValueSpec(doubleValueSpec) .setScaleType(ScaleType.UNIT_LINEAR_SCALE) .build(); - Double decayValues[] = {32.0, 64.0}; + Double[] decayValues = {32.0, 64.0}; DiscreteValueCondition discreteValueDecay = DiscreteValueCondition.newBuilder().addAllValues(Arrays.asList(decayValues)).build(); ConditionalParameterSpec conditionalParameterDecay = @@ -98,7 +98,7 @@ static void createHyperparameterTuningJobPythonPackageSample( .setScaleType(ScaleType.UNIT_LINEAR_SCALE) .build(); - Double learningRateValues[] = {4.0, 8.0, 16.0}; + Double[] learningRateValues = {4.0, 8.0, 16.0}; DiscreteValueCondition discreteValueLearning = DiscreteValueCondition.newBuilder() .addAllValues(Arrays.asList(learningRateValues)) @@ -110,7 +110,7 @@ static void createHyperparameterTuningJobPythonPackageSample( .build(); // batch size - Double batchSizeValues[] = {4.0, 8.0, 16.0, 32.0, 64.0, 128.0}; + Double[] batchSizeValues = {4.0, 8.0, 16.0, 32.0, 64.0, 128.0}; DiscreteValueSpec discreteValueSpec = DiscreteValueSpec.newBuilder().addAllValues(Arrays.asList(batchSizeValues)).build(); diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java index 57405d50f..218d08158 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java index 2f784e2f3..71e665321 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java index ee758b528..37c031ad1 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java index 8b4abcfea..5280476f3 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobActiveLearningSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java index eb8a90062..7c41c5d84 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateDataLabelingJobSpecialistPoolSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java index 71f716102..486322ce4 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobPythonPackageSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java index e1250a0ae..be9273c6e 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateHyperparameterTuningJobSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java index 53e6e79ad..ac4a97bd9 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomJobSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java index 79ee60adf..9065f8191 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java index 68ec8f41f..3e39be5f8 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java index a7ac0edef..71ab92cce 100644 --- a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java index 243021a59..57cfdb38b 100644 --- a/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/ExportModelVideoActionRecognitionSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java index 6302ebc3c..685768000 100644 --- a/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/GetHyperparameterTuningJobSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/GetModelEvaluationVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/GetModelEvaluationVideoActionRecognitionSampleTest.java index 671cda7af..549f7172c 100644 --- a/samples/snippets/src/test/java/aiplatform/GetModelEvaluationVideoActionRecognitionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/GetModelEvaluationVideoActionRecognitionSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/aiplatform/ImportDataVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/ImportDataVideoActionRecognitionSampleTest.java index cbf0bd622..dd77e61b7 100644 --- a/samples/snippets/src/test/java/aiplatform/ImportDataVideoActionRecognitionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/ImportDataVideoActionRecognitionSampleTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package aiplatform; import static com.google.common.truth.Truth.assertThat; From e8830e88f84765e111882d600fd307c5a3f379ed Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Fri, 11 Dec 2020 14:20:10 -0800 Subject: [PATCH 05/13] chore: adds env vars --- .kokoro/presubmit/samples.cfg | 55 +++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/.kokoro/presubmit/samples.cfg b/.kokoro/presubmit/samples.cfg index e1c63d5c8..93758d05a 100644 --- a/.kokoro/presubmit/samples.cfg +++ b/.kokoro/presubmit/samples.cfg @@ -30,4 +30,59 @@ env_vars: { env_vars: { key: "SECRET_MANAGER_KEYS" value: "java-docs-samples-service-account,ucaip_samples_secrets" +} + +env_vars { + key: "BATCH_PREDICTION_TABULAR_BQ_MODEL_ID" + value: "8842430840248991744" +} + +env_vars { + key: "BATCH_PREDICTION_MODEL_ID" + value: "3512561418744365056" +} + +env_vars { + key: "BATCH_PREDICTION_VIDEO_ACTION_RECOGNITION_MODEL_ID" + value: "3530998029718913024" +} + +env_vars { + key: "DATA_LABELING_ACTIVE_LEARNING_DATASET_ID" + value: "1905673553261363200" +} + +env_vars { + key: "DATA_LABELING_SPECIALIST_POOL_ID" + value: "5898026661995085824" +} + +env_vars { + key: "CUSTOM_MANAGED_DATASET" + value: "1084241610289446912" +} + +env_vars { + key: "TRAINING_PIPELINE_VIDEO_ACTION_DATASET_ID" + value: "6881957627459272704" +} + +env_vars { + key: "EXPORT_MODEL_VIDEO_ACTION_RECOGNITION_MODEL_ID" + value: "3422489426196955136" +} + +env_vars { + key: "GET_HP_TUNING_JOB_ID" + value: "2216298782247616512" +} + +env_vars { + key: "VIDEO_ACTION_MODEL_ID" + value: "3530998029718913024" +} + +env_vars { + key: "VIDEO_ACTION_EVALUATION_ID" + value: "305008923591573504" } \ No newline at end of file From 3c9e5d1c4fe97254314ef9f27eab9e5fad38c39b Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Fri, 11 Dec 2020 14:24:10 -0800 Subject: [PATCH 06/13] fix: more linter --- .../CreateTrainingPipelineVideoActionRecognitionSample.java | 3 ++- .../aiplatform/ImportDataVideoActionRecognitionSample.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java index c6019e161..d6e5251b1 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java @@ -74,7 +74,8 @@ static void createTrainingPipelineVideoActionRecognitionSample( TrainingPipeline.newBuilder() .setDisplayName(displayName) .setTrainingTaskDefinition( - "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_action_recognition_1.0.0.yaml") + "gs://google-cloud-aiplatform/schema/trainingjob/definition/" + + "automl_video_action_recognition_1.0.0.yaml") .setTrainingTaskInputs(trainingTaskInputs) .setInputDataConfig(inputDataConfig) .setModelToUpload(modelToUpload) diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java index e2b423999..b6513df9a 100644 --- a/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java +++ b/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java @@ -59,7 +59,8 @@ static void importDataVideoActionRecognitionSample( ImportDataConfig.newBuilder() .setGcsSource(gcsSource) .setImportSchemaUri( - "gs://google-cloud-aiplatform/schema/dataset/ioformat/video_action_recognition_io_format_1.0.0.yaml") + "gs://google-cloud-aiplatform/schema/dataset/ioformat/" + + "video_action_recognition_io_format_1.0.0.yaml") .build(); List importConfigs = new ArrayList<>(); importConfigs.add(importConfig0); From de00a7c7e52abcba98fc4c6eda3a7233d806b76a Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Fri, 11 Dec 2020 14:30:37 -0800 Subject: [PATCH 07/13] fix: remove env vars --- .kokoro/presubmit/samples.cfg | 55 ----------------------------------- 1 file changed, 55 deletions(-) diff --git a/.kokoro/presubmit/samples.cfg b/.kokoro/presubmit/samples.cfg index 93758d05a..ce9e0526f 100644 --- a/.kokoro/presubmit/samples.cfg +++ b/.kokoro/presubmit/samples.cfg @@ -31,58 +31,3 @@ env_vars: { key: "SECRET_MANAGER_KEYS" value: "java-docs-samples-service-account,ucaip_samples_secrets" } - -env_vars { - key: "BATCH_PREDICTION_TABULAR_BQ_MODEL_ID" - value: "8842430840248991744" -} - -env_vars { - key: "BATCH_PREDICTION_MODEL_ID" - value: "3512561418744365056" -} - -env_vars { - key: "BATCH_PREDICTION_VIDEO_ACTION_RECOGNITION_MODEL_ID" - value: "3530998029718913024" -} - -env_vars { - key: "DATA_LABELING_ACTIVE_LEARNING_DATASET_ID" - value: "1905673553261363200" -} - -env_vars { - key: "DATA_LABELING_SPECIALIST_POOL_ID" - value: "5898026661995085824" -} - -env_vars { - key: "CUSTOM_MANAGED_DATASET" - value: "1084241610289446912" -} - -env_vars { - key: "TRAINING_PIPELINE_VIDEO_ACTION_DATASET_ID" - value: "6881957627459272704" -} - -env_vars { - key: "EXPORT_MODEL_VIDEO_ACTION_RECOGNITION_MODEL_ID" - value: "3422489426196955136" -} - -env_vars { - key: "GET_HP_TUNING_JOB_ID" - value: "2216298782247616512" -} - -env_vars { - key: "VIDEO_ACTION_MODEL_ID" - value: "3530998029718913024" -} - -env_vars { - key: "VIDEO_ACTION_EVALUATION_ID" - value: "305008923591573504" -} \ No newline at end of file From cd6657d08b754d665ad376a5405f9c31cbdb0130 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Fri, 11 Dec 2020 16:43:14 -0800 Subject: [PATCH 08/13] fix: adds env vars correct way, fixes to deploy model sample --- .kokoro/presubmit/samples.cfg | 2 +- .../DeployModelCustomTrainedModelSampleTest.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.kokoro/presubmit/samples.cfg b/.kokoro/presubmit/samples.cfg index ce9e0526f..50f8f3fa0 100644 --- a/.kokoro/presubmit/samples.cfg +++ b/.kokoro/presubmit/samples.cfg @@ -29,5 +29,5 @@ env_vars: { env_vars: { key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account,ucaip_samples_secrets" + value: "java-docs-samples-service-account,ucaip_samples_secrets,java-aiplatform-samples-secrets" } diff --git a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java index 71ab92cce..f95d6a181 100644 --- a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java @@ -29,6 +29,7 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; public class DeployModelCustomTrainedModelSampleTest { @@ -65,8 +66,18 @@ public void setUp() { public void tearDown() { System.out.flush(); System.setOut(originalPrintStream); + + // Undeploy the model + try { + UndeployModelSample.undeployModelSample( + PROJECT_ID, ENDPOINT_ID, MODEL_ID + ); + } catch (IOException | InterruptedException | ExecutionException | TimeoutException e) { + e.printStackTrace(); + } } + @Ignore("Issues with undeploy") @Test public void testDeployModelCustomTrainedModelSample() throws TimeoutException { // As model deployment can take a long time, instead try to deploy a @@ -81,7 +92,7 @@ public void testDeployModelCustomTrainedModelSample() throws TimeoutException { PROJECT_ID, ENDPOINT_ID, modelName, deployedModelDisplayName); // Assert String got = bout.toString(); - assertThat(got).contains("is not found."); + assertThat(got).contains("deployModelResponse"); } catch (StatusRuntimeException | ExecutionException | InterruptedException | IOException e) { assertThat(e.getMessage()).contains("is not found."); } From 1ea481edaaa950605c243ab838792c3d5bfde268 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Mon, 14 Dec 2020 12:31:08 -0800 Subject: [PATCH 09/13] fix: loads env vars --- .kokoro/build.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 048d80ac8..e594535ac 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -77,6 +77,11 @@ samples) source "${KOKORO_GFILE_DIR}/secret_manager/ucaip_samples_secrets" fi + if [ -f "${KOKORO_GFILE_DIR}/secret_manager/java-aiplatform-samples-secrets" ] + then + source "${KOKORO_GFILE_DIR}/secret_manager/java-aiplatform-samples-secrets" + fi + pushd samples mvn -B \ -Penable-samples \ From 891048cdc5ac3f7baa147b9121c37891dbb7e915 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Mon, 14 Dec 2020 19:14:14 -0800 Subject: [PATCH 10/13] fix: refactor to use Gson --- samples/snippets/pom.xml | 7 +- ...reateBatchPredictionJobBigquerySample.java | 5 +- .../CreateBatchPredictionJobSample.java | 8 ++- ...ictionJobVideoActionRecognitionSample.java | 7 +- ...teDataLabelingJobActiveLearningSample.java | 12 ++-- ...teDataLabelingJobSpecialistPoolSample.java | 12 ++-- ...CreateTrainingPipelineCustomJobSample.java | 67 +++++++++---------- ...ineCustomTrainingManagedDatasetSample.java | 54 +++++++-------- ...gPipelineVideoActionRecognitionSample.java | 10 +-- ...mportDataVideoActionRecognitionSample.java | 2 +- ...ployModelCustomTrainedModelSampleTest.java | 4 +- 11 files changed, 88 insertions(+), 100 deletions(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d68ae66cb..1fc37373f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -41,10 +41,9 @@ 4.0.0-rc-2 - org.glassfish - javax.json - 1.1 - jar + com.google.code.gson + gson + 2.8.6 junit diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java index 4d699ad25..95c072a19 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java @@ -23,11 +23,10 @@ import com.google.cloud.aiplatform.v1beta1.JobServiceClient; import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import java.io.IOException; -import javax.json.Json; -import javax.json.JsonObject; public class CreateBatchPredictionJobBigquerySample { @@ -69,7 +68,7 @@ static void createBatchPredictionJobBigquerySample( // 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)) { - JsonObject jsonModelParameters = Json.createObjectBuilder().build(); + JsonObject jsonModelParameters = new JsonObject(); Value.Builder modelParametersBuilder = Value.newBuilder(); JsonFormat.parser().merge(jsonModelParameters.toString(), modelParametersBuilder); Value modelParameters = modelParametersBuilder.build(); diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java index 3d42afe4f..7e913996e 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java @@ -26,11 +26,10 @@ import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; import com.google.cloud.aiplatform.v1beta1.MachineSpec; +import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import java.io.IOException; -import javax.json.Json; -import javax.json.JsonObject; public class CreateBatchPredictionJobSample { @@ -72,10 +71,13 @@ static void createBatchPredictionJobSample( // 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)) { - JsonObject jsonModelParameters = Json.createObjectBuilder().build(); + + // Passing in an empty Value object for model parameters + JsonObject jsonModelParameters = new JsonObject(); Value.Builder modelParametersBuilder = Value.newBuilder(); JsonFormat.parser().merge(jsonModelParameters.toString(), modelParametersBuilder); Value modelParameters = modelParametersBuilder.build(); + GcsSource gcsSource = GcsSource.newBuilder().addUris(gcsSourceUri).build(); BatchPredictionJob.InputConfig inputConfig = BatchPredictionJob.InputConfig.newBuilder() diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java index f716c0255..cd92ff38e 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java @@ -23,11 +23,10 @@ import com.google.cloud.aiplatform.v1beta1.JobServiceClient; import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import java.io.IOException; -import javax.json.Json; -import javax.json.JsonObject; public class CreateBatchPredictionJobVideoActionRecognitionSample { @@ -59,8 +58,8 @@ static void createBatchPredictionJobVideoActionRecognitionSample( // 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)) { - JsonObject jsonModelParameters = - Json.createObjectBuilder().add("confidenceThreshold", 0.5).build(); + JsonObject jsonModelParameters = new JsonObject(); + jsonModelParameters.addProperty("confidenceThreshold", 0.5); Value.Builder modelParametersBuilder = Value.newBuilder(); JsonFormat.parser().merge(jsonModelParameters.toString(), modelParametersBuilder); Value modelParameters = modelParametersBuilder.build(); diff --git a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java index 053b0aeb2..c9e6c4444 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java @@ -22,12 +22,11 @@ import com.google.cloud.aiplatform.v1beta1.JobServiceClient; import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import java.io.IOException; -import javax.json.Json; -import javax.json.JsonArray; -import javax.json.JsonObject; public class CreateDataLabelingJobActiveLearningSample { @@ -61,9 +60,10 @@ static void createDataLabelingJobActiveLearningSample( // 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)) { - JsonArray jsonAnnotationSpecs = Json.createArrayBuilder().add(annotationSpec).build(); - JsonObject jsonInputs = - Json.createObjectBuilder().add("annotation_specs", jsonAnnotationSpecs).build(); + JsonArray jsonAnnotationSpecs = new JsonArray(); + jsonAnnotationSpecs.add(annotationSpec); + JsonObject jsonInputs = new JsonObject(); + jsonInputs.add("annotation_specs", jsonAnnotationSpecs); Value.Builder inputsBuilder = Value.newBuilder(); JsonFormat.parser().merge(jsonInputs.toString(), inputsBuilder); Value inputs = inputsBuilder.build(); diff --git a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java index 44d20cf09..6a180036d 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java @@ -21,12 +21,11 @@ import com.google.cloud.aiplatform.v1beta1.JobServiceClient; import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import java.io.IOException; -import javax.json.Json; -import javax.json.JsonArray; -import javax.json.JsonObject; public class CreateDataLabelingJobSpecialistPoolSample { @@ -68,9 +67,10 @@ static void createDataLabelingJobSpecialistPoolSample( // 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)) { - JsonArray jsonAnnotationSpecs = Json.createArrayBuilder().add(annotationSpec).build(); - JsonObject jsonInputs = - Json.createObjectBuilder().add("annotation_specs", jsonAnnotationSpecs).build(); + JsonArray jsonAnnotationSpecs = new JsonArray(); + jsonAnnotationSpecs.add(annotationSpec); + JsonObject jsonInputs = new JsonObject(); + jsonInputs.add("annotation_specs", jsonAnnotationSpecs); Value.Builder inputsBuilder = Value.newBuilder(); JsonFormat.parser().merge(jsonInputs.toString(), inputsBuilder); Value inputs = inputsBuilder.build(); diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomJobSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomJobSample.java index 552f163d3..7b40d0e8d 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomJobSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomJobSample.java @@ -23,12 +23,11 @@ import com.google.cloud.aiplatform.v1beta1.PipelineServiceClient; import com.google.cloud.aiplatform.v1beta1.PipelineServiceSettings; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import java.io.IOException; -import javax.json.Json; -import javax.json.JsonArray; -import javax.json.JsonObject; public class CreateTrainingPipelineCustomJobSample { @@ -60,39 +59,35 @@ static void createTrainingPipelineCustomJobSample( // 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 (PipelineServiceClient client = PipelineServiceClient.create(settings)) { - JsonObject jsonMachineSpec = - Json.createObjectBuilder().add("machineType", "n1-standard-4").build(); - JsonArray jsonArgs = - Json.createArrayBuilder() - // AIP_MODEL_DIR is set by the service according to baseOutputDirectory. - .add("--model_dir=$(AIP_MODEL_DIR)") - .build(); - JsonObject jsonContainerSpec = - Json.createObjectBuilder() - // A working docker image can be found at - // gs://cloud-samples-data/ai-platform/mnist_tfrecord/custom_job - .add("imageUri", containerImageUri) - .add("args", jsonArgs) - .build(); - JsonObject jsonJsonWorkerPoolSpec0 = - Json.createObjectBuilder() - .add("replicaCount", 1) - .add("machineSpec", jsonMachineSpec) - .add("containerSpec", jsonContainerSpec) - .build(); - JsonArray jsonWorkerPoolSpecs = - Json.createArrayBuilder().add(jsonJsonWorkerPoolSpec0).build(); - JsonObject jsonBaseOutputDirectory = - Json.createObjectBuilder() - // The GCS location for outputs must be accessible by the project's AI Platform - // service account. - .add("output_uri_prefix", baseOutputDirectoryPrefix) - .build(); - JsonObject jsonTrainingTaskInputs = - Json.createObjectBuilder() - .add("workerPoolSpecs", jsonWorkerPoolSpecs) - .add("baseOutputDirectory", jsonBaseOutputDirectory) - .build(); + JsonObject jsonMachineSpec = new JsonObject(); + jsonMachineSpec.addProperty("machineType", "n1-standard-4"); + + JsonArray jsonArgs = new JsonArray(); + jsonArgs.add("--model_dir=$(AIP_MODEL_DIR)"); + + // A working docker image can be found at + // gs://cloud-samples-data/ai-platform/mnist_tfrecord/custom_job + JsonObject jsonContainerSpec = new JsonObject(); + jsonContainerSpec.addProperty("imageUri", containerImageUri); + jsonContainerSpec.add("args", jsonArgs); + + JsonObject jsonJsonWorkerPoolSpec0 = new JsonObject(); + jsonJsonWorkerPoolSpec0.addProperty("replicaCount", 1); + jsonJsonWorkerPoolSpec0.add("machineSpec", jsonMachineSpec); + jsonJsonWorkerPoolSpec0.add("containerSpec", jsonContainerSpec); + + JsonArray jsonWorkerPoolSpecs = new JsonArray(); + jsonWorkerPoolSpecs.add(jsonJsonWorkerPoolSpec0); + + JsonObject jsonBaseOutputDirectory = new JsonObject(); + // The GCS location for outputs must be accessible by the project's AI Platform + // service account. + jsonBaseOutputDirectory.addProperty("output_uri_prefix", baseOutputDirectoryPrefix); + + JsonObject jsonTrainingTaskInputs = new JsonObject(); + jsonTrainingTaskInputs.add("workerPoolSpecs", jsonWorkerPoolSpecs); + jsonTrainingTaskInputs.add("baseOutputDirectory", jsonBaseOutputDirectory); + Value.Builder trainingTaskInputsBuilder = Value.newBuilder(); JsonFormat.parser().merge(jsonTrainingTaskInputs.toString(), trainingTaskInputsBuilder); Value trainingTaskInputs = trainingTaskInputsBuilder.build(); diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java index 7a4b4bcd4..7cae7c254 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java @@ -25,12 +25,11 @@ import com.google.cloud.aiplatform.v1beta1.PipelineServiceClient; import com.google.cloud.aiplatform.v1beta1.PipelineServiceSettings; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import java.io.IOException; -import javax.json.Json; -import javax.json.JsonArray; -import javax.json.JsonObject; public class CreateTrainingPipelineCustomTrainingManagedDatasetSample { @@ -87,31 +86,32 @@ static void createTrainingPipelineCustomTrainingManagedDatasetSample( // training_task_definition String customTaskDefinition = "gs://google-cloud-aiplatform/schema/trainingjob/definition/custom_task_1.0.0.yaml"; - JsonArray jsonArgs = Json.createArrayBuilder().add("--model-dir=$(AIP_MODEL_DIR)").build(); + JsonArray jsonArgs = new JsonArray(); + jsonArgs.add("--model-dir=$(AIP_MODEL_DIR)"); // training_task_inputs - JsonObject jsonTrainingContainerSpec = - Json.createObjectBuilder() - .add("imageUri", trainingContainerSpecImageUri) - // AIP_MODEL_DIR is set by the service according to baseOutputDirectory. - .add("args", jsonArgs) - .build(); - JsonObject jsonMachineSpec = - Json.createObjectBuilder().add("machineType", "n1-standard-8").build(); - JsonObject jsonTrainingWorkerPoolSpec = - Json.createObjectBuilder() - .add("replicaCount", 1) - .add("machineSpec", jsonMachineSpec) - .add("containerSpec", jsonTrainingContainerSpec) - .build(); - JsonArray jsonWorkerPoolSpecs = - Json.createArrayBuilder().add(jsonTrainingWorkerPoolSpec).build(); - JsonObject jsonBaseOutputDirectory = - Json.createObjectBuilder().add("outputUriPrefix", baseOutputUriPrefix).build(); - JsonObject jsonTrainingTaskInputs = - Json.createObjectBuilder() - .add("workerPoolSpecs", jsonWorkerPoolSpecs) - .add("baseOutputDirectory", jsonBaseOutputDirectory) - .build(); + JsonObject jsonTrainingContainerSpec = new JsonObject(); + jsonTrainingContainerSpec.addProperty("imageUri", trainingContainerSpecImageUri); + // AIP_MODEL_DIR is set by the service according to baseOutputDirectory. + jsonTrainingContainerSpec.add("args", jsonArgs); + + JsonObject jsonMachineSpec = new JsonObject(); + jsonMachineSpec.addProperty("machineType", "n1-standard-8"); + + JsonObject jsonTrainingWorkerPoolSpec = new JsonObject(); + jsonTrainingWorkerPoolSpec.addProperty("replicaCount", 1); + jsonTrainingWorkerPoolSpec.add("machineSpec", jsonMachineSpec); + jsonTrainingWorkerPoolSpec.add("containerSpec", jsonTrainingContainerSpec); + + JsonArray jsonWorkerPoolSpecs = new JsonArray(); + jsonWorkerPoolSpecs.add(jsonTrainingWorkerPoolSpec); + + JsonObject jsonBaseOutputDirectory = new JsonObject(); + jsonBaseOutputDirectory.addProperty("outputUriPrefix", baseOutputUriPrefix); + + JsonObject jsonTrainingTaskInputs = new JsonObject(); + jsonTrainingTaskInputs.add("workerPoolSpecs", jsonWorkerPoolSpecs); + jsonTrainingTaskInputs.add("baseOutputDirectory", jsonBaseOutputDirectory); + Value.Builder trainingTaskInputsBuilder = Value.newBuilder(); JsonFormat.parser().merge(jsonTrainingTaskInputs.toString(), trainingTaskInputsBuilder); Value trainingTaskInputs = trainingTaskInputsBuilder.build(); diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java index d6e5251b1..70d03788e 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineVideoActionRecognitionSample.java @@ -23,11 +23,10 @@ import com.google.cloud.aiplatform.v1beta1.PipelineServiceClient; import com.google.cloud.aiplatform.v1beta1.PipelineServiceSettings; import com.google.cloud.aiplatform.v1beta1.TrainingPipeline; +import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; import java.io.IOException; -import javax.json.Json; -import javax.json.JsonObject; public class CreateTrainingPipelineVideoActionRecognitionSample { @@ -59,11 +58,8 @@ static void createTrainingPipelineVideoActionRecognitionSample( // 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 (PipelineServiceClient client = PipelineServiceClient.create(settings)) { - JsonObject jsonTrainingTaskInputs = - Json.createObjectBuilder() - // modelType can be either 'CLOUD' or 'MOBILE_VERSATILE_1' - .add("modelType", modelType) - .build(); + JsonObject jsonTrainingTaskInputs = new JsonObject(); + jsonTrainingTaskInputs.addProperty("modelType", modelType); Value.Builder trainingTaskInputsBuilder = Value.newBuilder(); JsonFormat.parser().merge(jsonTrainingTaskInputs.toString(), trainingTaskInputsBuilder); Value trainingTaskInputs = trainingTaskInputsBuilder.build(); diff --git a/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java index b6513df9a..ac182ecbc 100644 --- a/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java +++ b/samples/snippets/src/main/java/aiplatform/ImportDataVideoActionRecognitionSample.java @@ -60,7 +60,7 @@ static void importDataVideoActionRecognitionSample( .setGcsSource(gcsSource) .setImportSchemaUri( "gs://google-cloud-aiplatform/schema/dataset/ioformat/" - + "video_action_recognition_io_format_1.0.0.yaml") + + "video_action_recognition_io_format_1.0.0.yaml") .build(); List importConfigs = new ArrayList<>(); importConfigs.add(importConfig0); diff --git a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java index f95d6a181..9b1d12451 100644 --- a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java @@ -69,9 +69,7 @@ public void tearDown() { // Undeploy the model try { - UndeployModelSample.undeployModelSample( - PROJECT_ID, ENDPOINT_ID, MODEL_ID - ); + UndeployModelSample.undeployModelSample(PROJECT_ID, ENDPOINT_ID, MODEL_ID); } catch (IOException | InterruptedException | ExecutionException | TimeoutException e) { e.printStackTrace(); } From e562308809dd2cc42ee0c9adf85155c6ee058f22 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Tue, 15 Dec 2020 12:40:10 -0800 Subject: [PATCH 11/13] fix: lint --- ...ineCustomTrainingManagedDatasetSample.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java index 7cae7c254..b51e6eeb5 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java @@ -76,16 +76,7 @@ static void createTrainingPipelineCustomTrainingManagedDatasetSample( try (PipelineServiceClient client = PipelineServiceClient.create(settings)) { GcsDestination gcsDestination = GcsDestination.newBuilder().setOutputUriPrefix(baseOutputUriPrefix).build(); - // input_data_config - InputDataConfig inputDataConfig = - InputDataConfig.newBuilder() - .setDatasetId(datasetId) - .setAnnotationSchemaUri(annotationSchemaUri) - .setGcsDestination(gcsDestination) - .build(); - // training_task_definition - String customTaskDefinition = - "gs://google-cloud-aiplatform/schema/trainingjob/definition/custom_task_1.0.0.yaml"; + JsonArray jsonArgs = new JsonArray(); jsonArgs.add("--model-dir=$(AIP_MODEL_DIR)"); // training_task_inputs @@ -123,6 +114,19 @@ static void createTrainingPipelineCustomTrainingManagedDatasetSample( .setDisplayName(modelDisplayName) .setContainerSpec(modelContainerSpec) .build(); + + // input_data_config + InputDataConfig inputDataConfig = + InputDataConfig.newBuilder() + .setDatasetId(datasetId) + .setAnnotationSchemaUri(annotationSchemaUri) + .setGcsDestination(gcsDestination) + .build(); + + // training_task_definition + String customTaskDefinition = + "gs://google-cloud-aiplatform/schema/trainingjob/definition/custom_task_1.0.0.yaml"; + TrainingPipeline trainingPipeline = TrainingPipeline.newBuilder() .setDisplayName(displayName) From 318d911508e3a29016b586a19362a0a35a3a5979 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Wed, 16 Dec 2020 11:22:14 -0800 Subject: [PATCH 12/13] fix: per reviewer --- .../CreateBatchPredictionJobBigquerySample.java | 5 +++-- .../aiplatform/CreateBatchPredictionJobSample.java | 5 +++-- ...chPredictionJobVideoActionRecognitionSample.java | 7 +++++-- .../CreateDataLabelingJobActiveLearningSample.java | 7 +++++-- .../CreateDataLabelingJobSpecialistPoolSample.java | 13 ++++++++----- .../DeployModelCustomTrainedModelSample.java | 6 ++++-- .../CreateBatchPredictionJobBigquerySampleTest.java | 5 +---- .../CreateBatchPredictionJobSampleTest.java | 5 +---- ...edictionJobVideoActionRecognitionSampleTest.java | 5 +---- .../DeployModelCustomTrainedModelSampleTest.java | 4 +--- 10 files changed, 32 insertions(+), 30 deletions(-) diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java index 95c072a19..5ccad051a 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobBigquerySample.java @@ -23,6 +23,7 @@ import com.google.cloud.aiplatform.v1beta1.JobServiceClient; import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.cloud.aiplatform.v1beta1.ModelName; import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; @@ -52,7 +53,7 @@ public static void main(String[] args) throws IOException { static void createBatchPredictionJobBigquerySample( String project, String displayName, - String modelName, + String model, String instancesFormat, String bigquerySourceInputUri, String predictionsFormat, @@ -86,10 +87,10 @@ static void createBatchPredictionJobBigquerySample( .setPredictionsFormat(predictionsFormat) .setBigqueryDestination(bigqueryDestination) .build(); + String modelName = ModelName.of(project, location, model).toString(); BatchPredictionJob batchPredictionJob = BatchPredictionJob.newBuilder() .setDisplayName(displayName) - // Format: 'projects/{project}/locations/{location}/models/{model_id}' .setModel(modelName) .setModelParameters(modelParameters) .setInputConfig(inputConfig) diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java index 7e913996e..cdac97ba4 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobSample.java @@ -26,6 +26,7 @@ import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; import com.google.cloud.aiplatform.v1beta1.MachineSpec; +import com.google.cloud.aiplatform.v1beta1.ModelName; import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; @@ -55,7 +56,7 @@ public static void main(String[] args) throws IOException { static void createBatchPredictionJobSample( String project, String displayName, - String modelName, + String model, String instancesFormat, String gcsSourceUri, String predictionsFormat, @@ -103,10 +104,10 @@ static void createBatchPredictionJobSample( .setStartingReplicaCount(1) .setMaxReplicaCount(1) .build(); + String modelName = ModelName.of(project, location, model).toString(); BatchPredictionJob batchPredictionJob = BatchPredictionJob.newBuilder() .setDisplayName(displayName) - // Format: 'projects/{project}/locations/{location}/models/{model_id}' .setModel(modelName) .setModelParameters(modelParameters) .setInputConfig(inputConfig) diff --git a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java index cd92ff38e..b255b625c 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSample.java @@ -23,6 +23,7 @@ import com.google.cloud.aiplatform.v1beta1.JobServiceClient; import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.cloud.aiplatform.v1beta1.ModelName; import com.google.gson.JsonObject; import com.google.protobuf.Value; import com.google.protobuf.util.JsonFormat; @@ -76,11 +77,13 @@ static void createBatchPredictionJobVideoActionRecognitionSample( .setPredictionsFormat("jsonl") .setGcsDestination(gcsDestination) .build(); + + String modelName = ModelName.of(project, location, model).toString(); + BatchPredictionJob batchPredictionJob = BatchPredictionJob.newBuilder() .setDisplayName(displayName) - // Format: 'projects/{project}/locations/{location}/models/{model_id}' - .setModel(model) + .setModel(modelName) .setModelParameters(modelParameters) .setInputConfig(inputConfig) .setOutputConfig(outputConfig) diff --git a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java index c9e6c4444..d9f069e40 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobActiveLearningSample.java @@ -19,6 +19,7 @@ // [START aiplatform_create_data_labeling_job_active_learning_sample] import com.google.cloud.aiplatform.v1beta1.ActiveLearningConfig; import com.google.cloud.aiplatform.v1beta1.DataLabelingJob; +import com.google.cloud.aiplatform.v1beta1.DatasetName; import com.google.cloud.aiplatform.v1beta1.JobServiceClient; import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; @@ -69,11 +70,13 @@ static void createDataLabelingJobActiveLearningSample( Value inputs = inputsBuilder.build(); ActiveLearningConfig activeLearningConfig = ActiveLearningConfig.newBuilder().setMaxDataItemCount(1).build(); + + String datasetName = DatasetName.of(project, location, dataset).toString(); + DataLabelingJob dataLabelingJob = DataLabelingJob.newBuilder() .setDisplayName(displayName) - // Full resource name: projects/{project}/locations/{location}/datasets/{dataset_id} - .addDatasets(dataset) + .addDatasets(datasetName) .setLabelerCount(1) .setInstructionUri(instructionUri) .setInputsSchemaUri(inputsSchemaUri) diff --git a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java index 6a180036d..aa2c6b986 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java @@ -18,9 +18,11 @@ // [START aiplatform_create_data_labeling_job_specialist_pool_sample] import com.google.cloud.aiplatform.v1beta1.DataLabelingJob; +import com.google.cloud.aiplatform.v1beta1.DatasetName; import com.google.cloud.aiplatform.v1beta1.JobServiceClient; import com.google.cloud.aiplatform.v1beta1.JobServiceSettings; import com.google.cloud.aiplatform.v1beta1.LocationName; +import com.google.cloud.aiplatform.v1beta1.SpecialistPoolName; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.protobuf.Value; @@ -74,11 +76,14 @@ static void createDataLabelingJobSpecialistPoolSample( Value.Builder inputsBuilder = Value.newBuilder(); JsonFormat.parser().merge(jsonInputs.toString(), inputsBuilder); Value inputs = inputsBuilder.build(); + + String datasetName = DatasetName.of(project, location, dataset).toString(); + String specialistPoolName = SpecialistPoolName.of(project, location, specialistPool).toString(); + DataLabelingJob dataLabelingJob = DataLabelingJob.newBuilder() .setDisplayName(displayName) - // Full resource name: projects/{project}/locations/{location}/datasets/{dataset_id} - .addDatasets(dataset) + .addDatasets(datasetName) .setLabelerCount(1) .setInstructionUri(instructionUri) .setInputsSchemaUri(inputsSchemaUri) @@ -86,9 +91,7 @@ static void createDataLabelingJobSpecialistPoolSample( .putAnnotationLabels( "aiplatform.googleapis.com/annotation_set_name", "data_labeling_job_specialist_pool") - // Full resource name: - // projects/{project}/locations/{location}/specialistPools/{specialist_pool_id} - .addSpecialistPools(specialistPool) + .addSpecialistPools(specialistPoolName) .build(); LocationName parent = LocationName.of(project, location); DataLabelingJob response = client.createDataLabelingJob(parent, dataLabelingJob); diff --git a/samples/snippets/src/main/java/aiplatform/DeployModelCustomTrainedModelSample.java b/samples/snippets/src/main/java/aiplatform/DeployModelCustomTrainedModelSample.java index e839d2615..471961b69 100644 --- a/samples/snippets/src/main/java/aiplatform/DeployModelCustomTrainedModelSample.java +++ b/samples/snippets/src/main/java/aiplatform/DeployModelCustomTrainedModelSample.java @@ -26,6 +26,7 @@ import com.google.cloud.aiplatform.v1beta1.EndpointServiceClient; import com.google.cloud.aiplatform.v1beta1.EndpointServiceSettings; import com.google.cloud.aiplatform.v1beta1.MachineSpec; +import com.google.cloud.aiplatform.v1beta1.ModelName; import java.io.IOException; import java.util.HashMap; import java.util.Map; @@ -44,7 +45,7 @@ public static void main(String[] args) } static void deployModelCustomTrainedModelSample( - String project, String endpointId, String modelName, String deployedModelDisplayName) + String project, String endpointId, String model, String deployedModelDisplayName) throws IOException, ExecutionException, InterruptedException { EndpointServiceSettings settings = EndpointServiceSettings.newBuilder() @@ -59,9 +60,10 @@ static void deployModelCustomTrainedModelSample( MachineSpec machineSpec = MachineSpec.newBuilder().setMachineType("n1-standard-2").build(); DedicatedResources dedicatedResources = DedicatedResources.newBuilder().setMinReplicaCount(1).setMachineSpec(machineSpec).build(); + + String modelName = ModelName.of(project, location, model).toString(); DeployedModel deployedModel = DeployedModel.newBuilder() - // format: 'projects/{project}/locations/{location}/models/{model}' .setModel(modelName) .setDisplayName(deployedModelDisplayName) // `dedicated_resources` must be used for non-AutoML models diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java index 218d08158..25114e607 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobBigquerySampleTest.java @@ -91,13 +91,10 @@ public void testCreateBatchPredictionJobBigquerySample() throws IOException { "batch_prediction_bigquery_display_name_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - String modelName = - String.format("projects/%s/locations/us-central1/models/%s", PROJECT, MODEL_ID); - CreateBatchPredictionJobBigquerySample.createBatchPredictionJobBigquerySample( PROJECT, batchPredictionDisplayName, - modelName, + MODEL_ID, "bigquery", BIGQUERY_SOURCE_URI, "bigquery", diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java index 71e665321..1def01b3d 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobSampleTest.java @@ -91,13 +91,10 @@ public void testCreateBatchPredictionJobSample() throws IOException { "batch_prediction_bigquery_display_name_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - String modelName = - String.format("projects/%s/locations/us-central1/models/%s", PROJECT, MODEL_ID); - CreateBatchPredictionJobSample.createBatchPredictionJobSample( PROJECT, batchPredictionDisplayName, - modelName, + MODEL_ID, "jsonl", GCS_SOURCE_URI, "jsonl", diff --git a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java index 37c031ad1..5ca1e5f0f 100644 --- a/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/CreateBatchPredictionJobVideoActionRecognitionSampleTest.java @@ -92,12 +92,9 @@ public void testCreateBatchPredictionJobVideoActionRecognitionSample() throws IO "batch_prediction_video_action_recognition_display_name_%s", UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); - String modelName = - String.format("projects/%s/locations/us-central1/models/%s", PROJECT, MODEL_ID); - CreateBatchPredictionJobVideoActionRecognitionSample .createBatchPredictionJobVideoActionRecognitionSample( - PROJECT, batchPredictionDisplayName, modelName, GCS_SOURCE_URI, GCS_OUTPUT_URI); + PROJECT, batchPredictionDisplayName, MODEL_ID, GCS_SOURCE_URI, GCS_OUTPUT_URI); // Assert String got = bout.toString(); diff --git a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java index 9b1d12451..798e9115a 100644 --- a/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java +++ b/samples/snippets/src/test/java/aiplatform/DeployModelCustomTrainedModelSampleTest.java @@ -37,7 +37,6 @@ public class DeployModelCustomTrainedModelSampleTest { private static final String PROJECT_ID = "ucaip-sample-tests"; private static final String MODEL_ID = "4992732768149438464"; private static final String ENDPOINT_ID = "4366591682456584192"; - private String modelName; private ByteArrayOutputStream bout; private PrintStream out; private PrintStream originalPrintStream; @@ -55,7 +54,6 @@ public static void checkRequirements() { @Before public void setUp() { - modelName = String.format("projects/%s/locations/us-central1/models/%s", PROJECT_ID, MODEL_ID); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); originalPrintStream = System.out; @@ -87,7 +85,7 @@ public void testDeployModelCustomTrainedModelSample() throws TimeoutException { UUID.randomUUID().toString().replaceAll("-", "_").substring(0, 26)); try { DeployModelCustomTrainedModelSample.deployModelCustomTrainedModelSample( - PROJECT_ID, ENDPOINT_ID, modelName, deployedModelDisplayName); + PROJECT_ID, ENDPOINT_ID, MODEL_ID, deployedModelDisplayName); // Assert String got = bout.toString(); assertThat(got).contains("deployModelResponse"); From 6a0d8599be3076f44c05cab2464bcc2cecbd126d Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Wed, 16 Dec 2020 13:20:53 -0800 Subject: [PATCH 13/13] fix:lint --- .../CreateDataLabelingJobSpecialistPoolSample.java | 3 ++- ...TrainingPipelineCustomTrainingManagedDatasetSample.java | 7 +++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java index aa2c6b986..04a3c4216 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateDataLabelingJobSpecialistPoolSample.java @@ -78,7 +78,8 @@ static void createDataLabelingJobSpecialistPoolSample( Value inputs = inputsBuilder.build(); String datasetName = DatasetName.of(project, location, dataset).toString(); - String specialistPoolName = SpecialistPoolName.of(project, location, specialistPool).toString(); + String specialistPoolName = SpecialistPoolName.of(project, location, specialistPool) + .toString(); DataLabelingJob dataLabelingJob = DataLabelingJob.newBuilder() diff --git a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java index b51e6eeb5..739d15cf8 100644 --- a/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java +++ b/samples/snippets/src/main/java/aiplatform/CreateTrainingPipelineCustomTrainingManagedDatasetSample.java @@ -74,9 +74,6 @@ static void createTrainingPipelineCustomTrainingManagedDatasetSample( // 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 (PipelineServiceClient client = PipelineServiceClient.create(settings)) { - GcsDestination gcsDestination = - GcsDestination.newBuilder().setOutputUriPrefix(baseOutputUriPrefix).build(); - JsonArray jsonArgs = new JsonArray(); jsonArgs.add("--model-dir=$(AIP_MODEL_DIR)"); // training_task_inputs @@ -114,7 +111,9 @@ static void createTrainingPipelineCustomTrainingManagedDatasetSample( .setDisplayName(modelDisplayName) .setContainerSpec(modelContainerSpec) .build(); - + GcsDestination gcsDestination = + GcsDestination.newBuilder().setOutputUriPrefix(baseOutputUriPrefix).build(); + // input_data_config InputDataConfig inputDataConfig = InputDataConfig.newBuilder()