0

我試圖在Google ml雲中提交一份工作。Google身份驗證gcloud.beta.ml.jobs.submit.training

gcloud beta ml jobs submit training readlips_resnet1 \ 
    --package-path=trainer \ 
    --module-name=trainer.run \ 
    --staging-bucket=gs://xxxxbucket/ \ 
    --region=us-central1 \ 
    --scale-tier=BASIC_GPU \ 
    -- \ 
    --input_path gs://xxxxbucket/readlips/m1/readlips-test-1-{}.tfrecords \ 
    --input_path_test gs://xxxxbucket/readlips/m1/readlips-test-1-6.tfrecords \ 
    --board_path gs://my-first-bucket-mosnoi/readlips/m1/TFboard3_readlips_resnet \ 
    --model_dir gs://xxxxbucket/readlips/m1/models3 \ 
    --filenameNr 2 \ 
    --save_step 1000 \ 
    --display_step 100 \ 
    --max_steps 2000 \ 
    --batch_size 20 \ 
    --learning_rate 0.001 \ 
    --keep_prob 0.8 \ 
    --layers 3 \ 
    --hidden 150 \ 
    --rnn_cell LSTM \ 
    --optimizer ADAM \ 
    --initializer graves \ 
    --bias -0.1 \ 
    --gpu 

我得到下一個錯誤

Job [readlips_resnet1] submitted successfully. 
INFO 2017-02-28 12:14:48 +0200  unknown_task   Validating job requirements... 
INFO 2017-02-28 12:14:48 +0200  unknown_task   Job creation request has been successfully validated. 
INFO 2017-02-28 12:14:49 +0200  unknown_task   Job readlips_resnet1 is queued. 
ERROR: (gcloud.beta.ml.jobs.submit.training) UNAUTHENTICATED: Request 
had invalid authentication credentials. Expected OAuth 2 access token, 
login cookie or other v alid authentication credential. See 
https://developers.google.com/identity/sign-in/web/devconsole-project. 

我不知道如何設置這些2周的訪問令牌,我已經在文檔中望去,我tryed gcloud測試初始化​​--account =和gcloud beta auth應用程序 - 默認登錄--client-id-file =。 我已經創建了證書,api密鑰,OAuth 2.0客戶端ID和服務帳戶密鑰,但我不知道要將它放在哪裏才能運行我的工作。

回答

0

確保您爲項目啓用Cloud API,創建服務帳戶並將私鑰下載爲JSON。在這種情況下,服務帳戶是最重要的,因爲錯誤似乎指向無效憑證。

您可以在「Creating and Managing Service Accounts」文檔中閱讀更多詳細信息。

運行以下命令

gcloud iam service-accounts list 

它應該顯示你與你的GCP相關的服務帳戶列表。 使用以下代碼驗證服務帳戶:

from googleapiclient import discovery 
from googleapiclient import http 
from oauth2client.client import GoogleCredentials 

credentials = GoogleCredentials.get_application_default() 
my_project_id = 'my_current_project_id' # change according to your 
project id 
projects = 'projects/' + my_project_id 
ml_client = discovery.build(
    'ml', 
    'v1',   
    requestBuilder=http.HttpRequest, 
    credentials=credentials) 
projs = ml_client.projects() 
response = projs.getConfig(name = projects).execute() 
SERVICE_ACCOUNT = response.get('serviceAccount') 
print('Your Service Acc:', SERVICE_ACCOUNT)