У меня большое количество файлов изображений (около 220 000), хранящихся на быстром локальном SSD. Используя Python и библиотеку tifffile, я считываю изображения в виде массивов numpy, которые затем объединяются в один массив и сохраняются на диск. Чтение этого объединенного массива происходит намного быстрее, чем чтение файлов по отдельности.
Я пытаюсь понять, почему во время чтения данных происходят записи (более 30 МБ/с) ( Ожидается: происходят все чтения, затем создается объединенный массив, затем происходит одна запись). Очевидно, что при этом доступной оперативной памяти более чем достаточно (весь набор данных умещается в оперативной памяти):
[img]https://i.sstatic. net/ZLR47OHm.png[/img]
Я предполагаю, что в памяти все еще есть данные (но не помечены как использующие память), чтобы объяснить, почему первые ~ 15 ГБ загружаются без какого-либо чтения с диска. (чтение начинается с левой стороны графика).
Простой пример кода выглядит примерно так:
import os
import numpy as np
from tifffile import imread
from functools import partial
from tqdm.contrib.concurrent import process_map
def get_image(dir, ID):
# Load as a numpy array
return imread(os.path.join(dir, ID + ".tif"))
def generate_numpy_file(IDs, folder, fname="train"):
_read = partial(get_image, folder)
print("Reading Data")
images = process_map(_read, IDs, max_workers=20, chunksize=1024)
images = np.array(images)
print("Writing Data")
np.save(os.path.join(SCRIPT_DIR, "Datasets", fname), images)
Подробнее здесь: https://stackoverflow.com/questions/788 ... nt-of-data
Python: периодическая запись при чтении большого объема данных ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Проблемы с загрузкой большого объема данных из базы данных SQL Server.
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как оптимизировать память при запросе и сохранении большого объема данных в S3
Anonymous » » в форуме Python - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-