Невозможно сделать прогноз в Google Automotive - PullRequest
0 голосов
/ 24 августа 2018

Я обучил модель и хотел бы предсказать оценку нового изображения.

Теперь я выполняю следующую функцию, но она возвращает ошибку:

google.api_core.exceptions.PermissionDenied: 403 Permission 'automl.models.predict' denied on resource 'projects/project_id/locations/us-central1/models/model_id' (or it may not exist).

Я не уверен, что это из-за неправильного местоположения, т.е. us-central1? Какую команду gcloud проверить?

Как решить эту проблему?

Большое спасибо.

def get_prediction(content, project_id, model_id):

    prediction_client = automl_v1beta1.PredictionServiceClient()
    name = 'projects/{}/locations/us-central1/models/{}'.format(project_id, model_id)
    payload = {'image': {'image_bytes': content }}
    params = {}
    request = prediction_client.predict(name, payload, params)
    return request  # waits till request is returned

1 Ответ

0 голосов
/ 24 августа 2018

Сообщения об ошибках разрешения обычно выдаются, когда приложение не проходит аутентификацию правильно;Следовательно, необходимо убедиться, что используемой учетной записи службы назначены роли, необходимые , а также предоставить учетные данные для вашего приложения с помощью переменных среды или явно указать вашфайл учетной записи службы в коде.Помните, что когда вы устанавливаете значение переменной среды в сеансе, оно сбрасывается каждый раз, когда сеанс сбрасывается.

Кроме того, AutoML Vision в настоящее время требуется расположение us-central1 , как указано в API Tutorial .Исходя из этого, вы должны быть в порядке в этом аспекте;Однако вы можете взглянуть на методы projects.locations REST, если хотите получить дополнительную информацию об этой конфигурации.

Вы можете использовать следующий пример официальной документации для Передайте путь к ключу учетной записи службы в коде , а также в руководстве QuickStart , чтобы узнать больше о требуемой конфигурации для начала использования службы AutoML Vision.

namespace Google\Cloud\Samples\Auth;

// Imports the Google Cloud Storage client library.
use Google\Cloud\Storage\StorageClient;

function auth_cloud_explicit($projectId, $serviceAccountPath)
{
    # Explicitly use service account credentials by specifying the private key
    # file.
    $config = [
        'keyFilePath' => $serviceAccountPath,
        'projectId' => $projectId,
    ];
    $storage = new StorageClient($config);

    # Make an authenticated API request (listing storage buckets)
    foreach ($storage->buckets() as $bucket) {
        printf('Bucket: %s' . PHP_EOL, $bucket->name());
    }
}
...