MemoryError при работе с большими файлами в Python - PullRequest
1 голос
/ 20 апреля 2020

Поэтому я пытаюсь преобразовать несколько сотен файлов .svs размером 120 МБ-2 ГБ (микроскопические фотографии с высоким разрешением при 40-кратном увеличении) в плитки JPEG, и я продолжаю получать MemoryError на этапе, когда мой сценарий выделяет большое количество файлов. данные в оперативную память. Мне просто нужно больше оперативной памяти или есть другие приемы, которые я могу попробовать?

Мой ноутбук оснащен 64-разрядным процессором i3 и 4 ГБ ОЗУ (обычно доступно 3,8 ГБ). Я бегу Python 3.8.2. Даже когда я ввожу только 1 из меньших слайдов одновременно, эта ошибка возникает (см. Ниже), поэтому я предполагаю, что меньшие партии невозможны. Понижение частоты будет влиять на разрешение сканирования, поэтому это не вариант.

output_jpeg_tiles('D:/TCGA slides/TCGA-O1-A52J-01A.svs', 'D:/JPEG tiles')

converting D:/TCGA slides/TCGA-O1-A52J-01A.svs with width 66640 and height 25155

Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    output_jpeg_tiles('D:/TCGA slides/TCGA-O1-A52J-01A.svs', 'D:/JPEG tiles')
  File "<pyshell#23>", line 22, in output_jpeg_tiles
    patch = img.read_region((begin_x, begin_y), 0, (patch_width, patch_height))
  File "C:\Users\...\site-packages\openslide\__init__.py", line 222, in read_region
    return lowlevel.read_region(self._osr, location[0], location[1],
  File "C:\Users\...\site-packages\openslide\lowlevel.py", line 258, in read_region
    buf = (w * h * c_uint32)()
MemoryError

Есть предложения? :)

...