我找不到任何说明Java中GCP Cloud ML引擎作业基本设置的源代码。我所能找到的只是Python示例。我可以从哪里开始?谢谢
答案 0 :(得分:2)
您的目标是什么?创建培训工作还是预测工作?
我无法提供完整的答案,因为我也找不到您需要的资源,但也许足以让您入门。
所有Google Cloud REST API均为其所有方法自动生成了客户端库。这就是@Guoqing Xu为您链接的内容。它们与您互动的方式非常相似。
https://cloud.google.com/compute/docs/reference/rest/v1/instances/get#examples
https://cloud.google.com/ml-engine/reference/rest/v1/projects.jobs/get
遗憾的是,这里没有底部的示例。
库: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();
}
}
答案 1 :(得分:-1)
因此,一件事是与Cloud Machine Learning Engine API进行交互,一是建立可以使用Cloud Machine Learning Engine进行训练的模型。
第一个可以用Java完成,因为它只是您可以使用的API,而后者则需要您提供TensorFlow模型进行训练。 Tensorflow确实提供了Java bindings,但是这些主要是为了在您的应用程序中使用一个预先存在的TensorFlow图,而不是开发一个(尽管有可能)。如果要构造图形,则必须使用Python,因为可用功能的数量远远大于Java。