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

如何加快从Google Drive向Google Colab上传12000张PNG图像的速度

谷歌云盘PNG图像批量导入Colab效率优化方案

慢的核心原因是谷歌云盘对大量小文件的随机读取性能极低,加上原代码用串行加载没有利用多核资源,可通过以下方法优化:

1 优先使用压缩包批量传输(效果最显著)

将12000张PNG在本地预先打包为单个ZIP/TAR文件,再上传到谷歌云盘,Colab侧直接将压缩包复制到本地临时磁盘后解压,避免上万次小文件IO请求,代码如下:

from google.colab import drive
drive.mount("/content/gdrive")

# 复制云盘中的压缩包到Colab本地磁盘
!cp /content/gdrive/MyDrive/你的压缩包路径/images.zip /content/
# 静默解压到本地文件夹
!unzip -q /content/images.zip -d /content/local_imgs/

2 改用多进程并行加载图像

原代码的列表推导式是单线程串行读取,改用多进程并行加载可充分利用Colab的多核CPU资源,大幅降低IO等待耗时:

import glob
import numpy as np
from PIL import Image
from concurrent.futures import ProcessPoolExecutor

filelist = glob.glob('/content/local_imgs/*.png')
def load_single_img(fname):
    return np.array(Image.open(fname))

# 进程数匹配Colab CPU核心数即可,一般设为4~8
with ProcessPoolExecutor(max_workers=8) as pool:
    X_train = np.array(list(pool.map(load_single_img, filelist)))

3 长期使用可提前导出为Numpy二进制文件

如果这批数据需要反复使用,第一次加载完成后直接存为单份NPY/NPZ文件,后续使用时直接读取单文件即可,无需重复解码PNG:

# 首次处理完成后存到云盘
np.save('/content/gdrive/MyDrive/你的存储路径/X_train.npy', X_train)
# 后续读取仅需数秒
X_train = np.load('/content/gdrive/MyDrive/你的存储路径/X_train.npy')

性能参考

12000张常规尺寸PNG用打包+并行加载的方案,全程耗时可压缩到10分钟以内,直接读取NPY文件耗时不超过10秒。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:54:02