Что случилось с np.memmapPython

Программы на Python
Ответить
Anonymous
 Что случилось с np.memmap

Сообщение Anonymous »

Недавно я нашел это сообщение на доске объявлений pytorch, в котором предлагалось использовать np.memmap для загрузки больших файлов .bin. Мне больше привычно использовать np.fromfile для подобных задач (на самом деле в документации говорится, что это «высокоэффективный способ чтения двоичных данных с известным типом данных»).

Поэтому я попробовал сравнить время между двумя функциями:

Код: Выделить всё

def read1(fname_bin):
return np.memmap(filename, dtype=np.float32, mode='r+').__array__()
по сравнению с

Код: Выделить всё

def read2(fname_bin):
return np.fromfile(fname, dtype=np.float32)
Затем я попробовал загрузить 1000 массивов, содержащих около 400 000 элементов. Сравнение времени приведено ниже:



method
mean (мс)
медиана (мс)
std (мс)




read1()
0.6364
0.6204
0.0566


read2()
0.9435
0.7607
0.3729



Это здорово, к тому же загрузка ЦП снижается. Но где-то я читал, что, возможно, эта операция создает где-то отдельный файл?

Может быть, проблема в том, что я не совсем понимаю разницу между картой памяти и чтением файла с диска.

Мой главный вопрос: могу ли я безопасно использовать np.memmap для загрузки больших файлов .bin в виде пустых массивов?

Подробнее здесь: https://stackoverflow.com/questions/765 ... -np-memmap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»