Запись в файл в Google Cloud ML - PullRequest
2 голосов
/ 29 мая 2019

В моем скрипте Tensorflow Python я хочу написать некоторую отладочную информацию, которая слишком многословна для журналов стековых драйверов, поэтому я хотел бы просто записать в свой собственный файл. Если я сделаю:

f.write('my_file.txt', 'w+')

Я не получаю никаких ошибок, что означает, что у меня есть некоторые разрешения на запись. Тем не менее, я не знаю, как найти этот файл. Это в JOB_DIR? Как я могу записать в файл, который будет доступен после завершения задания?

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Используйте API TensorFlow для записи файла непосредственно в Google Cloud Storage:

with tf.gfile.GFile("gs://bucket/some/dir/somefile", "w") as f:
        f.write(result_str)
0 голосов
/ 29 мая 2019

Файл записывается в хранилище, локальное для виртуальной машины, на которой выполняется ваш код.Если вы хотите получить доступ к файлу после завершения задания, вам необходимо скопировать его в корзину GCS в конце вашего сценария.Это можно сделать с помощью клиента Python google Cloud Storage api:

from google.cloud import storage
client = storage.Client()
bucket = client.bucket(BUCKETNAME)

blob = bucket.blob(BLOBNAME)
blob.upload_from_file('my_file.txt')

. Если вы используете TensorFlow, знайте, что некоторые утилиты TF io могут обрабатывать gs:// местоположения BLOB-объектов, как если бы они были путями к файлам.Например, обратный вызов tf.keras Tensorboard позволяет вам передавать файлы журнала Tensorboard непосредственно в корзину GCS, вместо того, чтобы сохранять их локально и затем выгружать вручную:

from tensorflow.keras.callbacks import TensorBoard

# Define a callback that will store tensorboard log files in a GCS bucket
callbacks = [TensorBoard(log_dir='gs://BUCKET/BLOB')]
model.fit(..., callbacks=callbacks)
...