Как добавить учетные данные GCS в tensorflow?

Я пытаюсь обучить модель на kaggle и сбрасывать журналы tensorboard в корзину GCS. Я не решаюсь разрешить анонимное чтение/запись в моем проекте и хотел бы, чтобы tensorflow использовал пользовательскую учетную запись службы с ограниченными квотами для всех операций GCP/gfile.GFile. Можно ли как-то предоставить tensorflow служебную учетную запись json для использования?

Является ли мой лучший выбор просто безопасностью безвестности?


person Charlie Mcvicker    schedule 29.07.2018    source источник
comment
безопасность за счет неизвестности никогда не была хорошей идеей. Тысячи хакеров используют автоматизированные инструменты. На чем вы используете Tensorflow? В случае с Compute Engine это очень просто сделать с помощью служебной учетной записи Compute Engine по умолчанию.   -  person John Hanley    schedule 07.12.2018


Ответы (2)


У меня нет опыта использования Kraggle, и я не совсем понимаю, какие ограничения вы хотите применить к учетной записи службы, но вы можете выполнить следующие шаги, чтобы определить доступ учетной записи службы к Google Cloud Storage при использовании TensorFlow:

  1. Следуйте этому руководству, чтобы внедрить пользовательскую файловую систему GCS в Tensorflow.
  2. Проверьте клиентскую библиотеку Python, чтобы создать экземпляр клиента.
  3. Разрешения сервисного аккаунта, необходимые для хранения, перечислены здесь. .
  4. Чтобы предоставить роли сервисному аккаунту, следуйте этому руководству< /а>.
  5. Проверьте фрагмент в запись Федерико здесь на основе эту документацию, чтобы реализовать учетную запись службы в коде Python.

Фрагмент:

from google.oauth2 import service_account

SERVICE_ACCOUNT_FILE = 'service.json'
credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE)
person Rubén C.    schedule 31.07.2018

Если у вас есть учетные данные служебной учетной записи в файле json, вы можете указать их в переменной среды GOOGLE_APPLICATION_CREDENTIALS, чтобы TensorFlow мог читать/записывать в GCS через gs:// URL-адреса.

Вы можете протестировать его следующим образом, запустив в bash следующее (он загружает тестовый скрипт дыма из репозитория TensorFlow и запускает его по URL-адресу вашей корзины с вашими учетными данными):

wget https://raw.githubusercontent.com/tensorflow/tensorflow/master/tensorflow/tools/gcs_test/python/gcs_smoke.py
GOOGLE_APPLICATION_CREDENTIALS=my_credentials.json python gcs_smoke.py --gcs_bucket_url=gs://my_bucket/test_tf

Это должно создать несколько фиктивных записей в GCS и прочитать их. После этого вы захотите очистить оставшиеся временные выходы, чтобы избежать дополнительных расходов:

gsutil rm -r gs://my_bucket/test_tf
person kahkeng    schedule 20.09.2018