如何在Google Colab免费层突破12小时限制下载7GB TensorFlow数据集?
解决Colab免费层下载WMT14-fr-en过慢的问题 + 数据集格式说明
一、用Google Drive导入本地存储的数据集
完全可以用Google Drive替代Colab的在线下载,步骤非常直观:
上传本地数据到Drive:
把你本地的WMT14-fr-en数据集上传到Google Drive的任意文件夹,比如我个人习惯放在/content/drive/MyDrive/datasets/wmt14_fr_en/。如果是之前用TFDS下载过的完整数据集结构,直接上传整个文件夹就行;如果是原始的平行文本文件(比如train.en、train.fr这种每行对应一对翻译的文件),也统一上传到这个文件夹里。在Colab中挂载Google Drive:
运行以下代码完成挂载,按照弹出的提示完成授权操作即可:from google.colab import drive drive.mount('/content/drive')加载数据集:
- 如果你的本地数据是TFDS标准格式(即通过
tfds.load下载后生成的文件夹结构):
直接在tfds.load中指定data_dir参数为Drive里的路径,TFDS会自动跳过下载流程,直接读取本地数据:import tensorflow_datasets as tfds dataset, info = tfds.load( 'wmt14_translate/fr-en', split='train', data_dir='/content/drive/MyDrive/datasets/wmt14_fr_en/', with_info=True ) - 如果你的本地数据是原始平行文本:
可以用tf.data.TextLineDataset分别读取英文和法文文件,再配对成完整的翻译数据集:import tensorflow as tf en_path = '/content/drive/MyDrive/datasets/wmt14_fr_en/train.en' fr_path = '/content/drive/MyDrive/datasets/wmt14_fr_en/train.fr' en_dataset = tf.data.TextLineDataset(en_path) fr_dataset = tf.data.TextLineDataset(fr_path) # 配对成(英文句子, 法文翻译)的样本结构 dataset = tf.data.Dataset.zip((en_dataset, fr_dataset))
- 如果你的本地数据是TFDS标准格式(即通过
二、关于WMT14-fr-en的数据集格式
TFDS中的wmt14_translate/fr-en默认是TFRecord格式(没有后缀名是因为TFDS的数据集文件夹内的文件是按TFRecord规范存储的,不需要额外后缀标识),每个样本是一个包含en和fr两个字段的字典,分别对应英文原文和法文翻译文本。
如果你拿到的是原始的WMT14公开数据,通常是两个平行的纯文本文件:一个文件全是英文句子,另一个文件对应行的内容就是该英文句子的法文翻译,没有复杂格式,直接按行读取配对即可。
内容的提问来源于stack exchange,提问作者Harshith Belagur




