繁体   English   中英

如何使用 Java 在 GCP 上创建云机器学习引擎作业?

[英]How do I create a Cloud Machine Learning Engine Job on GCP in Java?

我找不到任何说明 Java 中 GCP Cloud ML 引擎作业的基本设置的源代码。 我能找到的只是 Python 示例。 我可以从哪里开始? 谢谢

你的目标是什么? 创建训练作业还是预测作业?

我不能给你完整的答案,因为我也找不到你需要的资源,但也许这足以让你开始。

所有 Google Cloud REST API 都为其所有方法自动生成客户端库。 这就是@Guoqing Xu 为您链接的内容。 他们与您互动的方式非常相似。

  1. 对于计算引擎,您可以在这里查看,页面最底部是一个示例(也在 Java 中),说明如何使用此类库执行请求:

https://cloud.google.com/compute/docs/reference/rest/v1/instances/get#examples

  1. 以下是 ML Engine 的类似参考:

https://cloud.google.com/ml-engine/reference/rest/v1/projects.jobs/get

可悲的是,在这里你没有底部的例子。

  1. Javadoc: https : //developers.google.com/resources/api-libraries/documentation/ml/v1/java/latest/

库: https : //developers.google.com/api-client-library/java/apis/ml/v1

你可以把它们粘在一起。 我将从计算引擎示例开始,保持身份验证/凭据不变,添加一些导入,并替换构建器和方法,请参见下文。

该示例绝对不会起作用。 但我希望它能让你朝着正确的方向前进 :)

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.ml.v1.CloudMachineLearningEngine;  // perhaps without v1? not sure
import com.google.api.services.ml.v1.model.GoogleCloudMlV1Job; // perhaps without v1? not sure
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Arrays;

public class MLEngineExample {
  public static void main(String args[]) throws IOException, GeneralSecurityException {
    // Job Name for this request.
    String name = "job-name"; // TODO: Update placeholder value.

    CloudMachineLearningEngine mlEngineService = createMLEngineService();
    CloudMachineLearningEngine.Projects.Jobs request = mlEngineService.projects().jobs().get(name);

    GoogleCloudMlV1Job response = request.execute();

    // TODO: Change code below to process the `response` object:
    System.out.println(response);
  }

  public static CloudMachineLearningEngine createMLEngineService() throws IOException, GeneralSecurityException {
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();

    GoogleCredential credential = GoogleCredential.getApplicationDefault();
    if (credential.createScopedRequired()) {
      credential =
          credential.createScoped(Arrays.asList("https://www.googleapis.com/auth/cloud-platform"));
    }

    return new CloudMachineLearningEngine.Builder(httpTransport, jsonFactory, credential)
        .setApplicationName("Google-MlEngineSample/0.1")
        .build();
  }
}

因此,一件事是与 Cloud Machine Learning Engine API 交互,另一件事是构建一个可以使用 Cloud Machine Learning Engine 训练的模型。

第一个可以用 Java 完成,因为它只是一个你可以使用的 API,后者需要你提供一个 TensorFlow 模型来训练。 Tensorflow 确实提供了Java 绑定,但这些主要是为了在您的应用程序中使用预先存在的 TensorFlow 图,而不是开发一个(尽管可能)。 如果你想构建一个图,你本质上必须使用 Python,因为可用功能的数量比 Java 多得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM