You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python在TensorFlow及GML引擎训练任务中访问Google Bucket文件

嘿,针对你的问题我整理了详细的解答,帮你理清思路~

如何用Python TensorFlow访问Google Bucket,以及GML引擎中的正确方案

一、用TensorFlow访问Google Bucket文件

TensorFlow原生支持Google Cloud Storage(GCS)路径,不需要额外的第三方客户端(前提是环境已配置好权限),常用操作方式如下:

  • 读取文件:使用tf.io.gfile.GFile(),用法和Python内置open()几乎一致,支持文本和二进制文件:
    import tensorflow as tf
    
    # 读取文本文件
    with tf.io.gfile.GFile('gs://your-bucket/folder/file.txt', 'r') as f:
        content = f.read()
    
    # 读取二进制文件(比如预训练模型权重)
    with tf.io.gfile.GFile('gs://your-bucket/models/model.h5', 'rb') as f:
        model = tf.keras.models.load_model(f)
    
  • 加载数据集:直接在tf.data系列API中使用GCS路径,无需额外转换:
    dataset = tf.data.TFRecordDataset('gs://your-bucket/dataset/*.tfrecord')
    
  • 本地环境配置:如果是在本地运行代码,需要先执行gcloud auth application-default login命令完成身份认证,让TensorFlow有权限访问你的GCS资源。

二、GML引擎训练任务中的正确方案

先给出明确结论:方案二正确,方案一完全不可行,详细解释如下:

为什么方案一不可行?

Python内置的open()函数仅支持本地文件系统路径,根本无法识别gs://协议。如果在GML引擎中直接调用open('gs://bucket/folder/file.ext'),会立刻抛出FileNotFoundError——因为系统会把这个路径当作本地文件去找,自然找不到。

方案二:使用Google Cloud Storage Python客户端

这是官方推荐的Python操作GCS的标准方式,在GML引擎中可以直接使用(默认环境已预装该库,若未预装可在requirements.txt中添加google-cloud-storage)。示例代码:

from google.cloud import storage

# 初始化客户端(GML引擎会自动使用训练任务的服务账号完成认证)
client = storage.Client()

# 获取目标Bucket对象
bucket = client.get_bucket('your-bucket-name')

# 获取对应文件的Blob对象
blob = bucket.blob('folder/file.ext')

# 读取文件内容
text_content = blob.download_as_text()
binary_content = blob.download_as_bytes()

# 写入文件
blob.upload_from_string('新的文本内容')
blob.upload_from_filename('/tmp/local-file.txt')  # 从本地临时文件上传至GCS

额外补充:GML引擎中也可以用TensorFlow API访问GCS

除了GCS客户端,你也可以直接用前面提到的TensorFlow tf.io.gfile系列API在GML引擎中操作GCS——因为GML环境已经默认配置了训练任务服务账号的权限,只要该服务账号拥有目标Bucket的对应访问权限(比如只读需要roles/storage.objectViewer,读写需要roles/storage.objectAdmin),就能直接使用。

权限与存储类别说明

  • 权限要求:不管用哪种方式,训练任务使用的服务账号(GML默认用Compute Engine服务账号,也可以自定义)必须被授予目标Bucket的对应IAM权限,否则会出现访问被拒绝的错误。
  • 存储类别:Bucket的存储类别(比如标准存储、近线存储等)不会影响访问方式,只要权限配置正确,就能正常读写。

内容的提问来源于stack exchange,提问作者adnanmuttaleb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:55:02