Как загрузить набор данных CelebA в Google Colab с помощью Torch Vision, не исчерпывая памяти?

Я следую руководству по DCGAN. Каждый раз, когда я пытаюсь загрузить набор данных CelebA, torchvision использует всю мою оперативную память (12 ГБ), и среда выполнения дает сбой. Я ищу способы, как я могу загружать и применять преобразования к набору данных, не перегружая ресурсы времени выполнения.

Воспроизводить

Вот часть кода, вызывающая проблемы.

# 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: N / A

  • ОС: Ubuntu 18.04.5 LTS (x86_64)

  • Версия GCC: (Ubuntu 7.5.0-3ubuntu1 ~ 18.04) 7.5.0

  • Версия Clang: 6.0.0-1ubuntu2 (теги / RELEASE_600 / final)

  • Версия CMake: версия 3.12.0

  • Версия Python: 3.6 (64-разрядная среда выполнения)

  • Доступен ли CUDA: True

  • Версия среды выполнения CUDA: 10.1.243

  • Модели и конфигурация графического процессора: GPU 0: Tesla T4

  • Версия драйвера Nvidia: 418.67

  • Версия cuDNN: /usr/lib/x86_64-linux-gnu/libcudnn.so.7.6.5

  • Версия среды выполнения HIP: N / A

  • Версия среды выполнения MIOpen: N / A

Версии соответствующих библиотек:

  • [pip3] numpy == 1.19.4
  • [pip3] torch == 1.7.1 + cu101
  • [pip3] torchaudio == 0.7.2
  • pip3] torchsummary == 1.5.1
  • [pip3] torchtext == 0.3.1
  • [pip3] torchvision == 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=…)

Проблема с памятью сохраняется в любом из случаев.

Вам необходимо использовать dataloader   —  person Kinyugo    schedule 01.01.2021

Похоже, что руководство было обновлено, чтобы продемонстрировать использование класса torchvision.datasets.ImageFolder. Используя рецепт @kinyugo download + unzip (но не их собственный набор данных), остальная часть учебника проходит нормально на colab без ошибок памяти.   —  person Kinyugo    schedule 25.06.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!