1

gcloud ml-engine models predict我已成功部署在 Cloud ML Engine 上的模型上,并按照说明验证它是否正常工作,现在我想从我的网络应用程序/javascript 代码向它发送预测。我怎么做?

4

1 回答 1

1

在线预测 API 是一个 REST API,因此您可以使用任何库来发送 HTTPS 请求,但您需要使用Google 的 OAuth库来获取您的凭据。为简单起见,我们将使用该googleapis库。

预测请求的格式是 JSON,如docs中所述。

举个例子,考虑人口普查的例子。一个客户可能看起来像:

var google = require('googleapis');

var ml = google.ml('v1');

function auth(callback) {
    google.auth.getApplicationDefault(function(err, authClient) {
        if (err) {
            return callback(err);
        }

        if (authClient.createScopedRequired && authClient.createScopedRequired()) {
            authClient = authClient.createScoped([
                'https://www.googleapis.com/auth/cloud-platform'
            ]);
        }
        callback(null, authClient);
    });
}

var instance = {
    age: 25,
    workclass: " Private",
    education: " 11th",
    education_num: 7,
    marital_status: " Never - married",
    occupation: " Machine - op - inspct",
    relationship: " Own - child",
    race: " Black",
    gender: " Male",
    capital_gain: 0,
    capital_loss: 0,
    hours_per_week: 40,
    native_country: " United - Stats"
}

auth(function(err, authClient) {
    if (err) {
        console.error(err);
    } else {
        var ml = google.ml({
            version: 'v1',
            auth: authClient
        });

        // Predict
        ml.projects.predict({
            name: 'projects/MY_PROJECT/models/census',
            resource: {
                instances: [instance]
            }
        }, function(err, result) {
            if (err) {
                return callback(err);
            }

            console.log(JSON.stringify(result));
        });
    }
});
于 2017-07-21T08:14:49.977 回答