在Tensorflow Python脚本中,我想编写一些对于堆栈驱动程序日志来说过于冗长的调试信息,因此我想只写自己的文件。如果我这样做:
f.write('my_file.txt', 'w+')
我没有收到任何错误,这意味着我具有一些写权限。但是,我有0个想法如何找到该文件。是在JOB_DIR
中吗?作业完成后,我该如何写入可访问的文件?
答案 0 :(得分:1)
使用TensorFlow API将文件直接写入Google Cloud Storage:
with tf.gfile.GFile("gs://bucket/some/dir/somefile", "w") as f:
f.write(result_str)
答案 1 :(得分:0)
文件被写入到运行代码的VM本地的存储中。如果要在作业完成后访问文件,则需要在脚本末尾将其复制到GCS存储桶。您可以使用python谷歌云存储客户端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)