我正在关注关于DCGAN的教程。每当我尝试加载 CelebA 数据集时,torchvision 都会耗尽我所有的运行时内存(12GB)并且运行时崩溃。我正在寻找如何在不占用运行时资源的情况下加载和应用转换到数据集的方法。
重现
这是导致问题的代码部分。
# Root directory for the dataset
data_root = 'data/celeba'
# Spatial size of training images, images are resized to this size.
image_size = 64
celeba_data = datasets.CelebA(data_root,
download=True,
transform=transforms.Compose([
transforms.Resize(image_size),
transforms.CenterCrop(image_size),
transforms.ToTensor(),
transforms.Normalize(mean=[0.5, 0.5, 0.5],
std=[0.5, 0.5, 0.5])
]))
完整的笔记本可以在这里找到
环境
PyTorch 版本:1.7.1+cu101
是否调试构建:False
CUDA 用于构建 PyTorch:10.1
ROCM 用于构建 PyTorch:不适用
操作系统:Ubuntu 18.04.5 LTS (x86_64)
GCC版本:(Ubuntu 7.5.0-3ubuntu1~18.04)7.5.0
Clang 版本:6.0.0-1ubuntu2 (tags/RELEASE_600/final)
CMake 版本:3.12.0 版
Python 版本:3.6(64 位运行时)
CUDA 是否可用:真
CUDA 运行时版本:10.1.243
GPU 型号和配置: GPU 0:Tesla T4
英伟达驱动版本:418.67
cuDNN 版本:/usr/lib/x86_64-linux-gnu/libcudnn.so.7.6.5
HIP 运行时版本:不适用
MIOpen 运行时版本:不适用
相关库的版本:
- [pip3] numpy==1.19.4
- [pip3] 火炬==1.7.1+cu101
- [pip3] 火炬音频==0.7.2
- pip3] 火炬总结==1.5.1
- [pip3] 火炬文本==0.3.1
- [pip3] 火炬视觉==0.8.2+cu101
- [conda] 无法收集
附加上下文
我尝试过的一些事情是:
- 在单独的行上下载和加载数据集。例如:
# Download the dataset only
datasets.CelebA(data_root, download=True)
# Load the dataset here
celeba_data = datasets.CelebA(data_root, download=False, transforms=...)
- 使用
ImageFolder
数据集类而不是CelebA
类。例如:
# Download the dataset only
datasets.CelebA(data_root, download=True)
# Load the dataset using the ImageFolder class
celeba_data = datasets.ImageFolder(data_root, transforms=...)
在这两种情况下,内存问题仍然存在。