Я использую код Python (V.3.6.5 64-bit) в Windows10 (64-bit).Я хочу применить функции numpy
и memmap
для создания карты памяти на диске.Причина в том, что мой массив огромен и в противном случае выдает ошибку памяти.В случае, если я использую float32
Losses = np.memmap('mmp/losses.dat', dtype=np.float32,mode='w+', shape=(5E6, 2000))
, тогда я получаю следующее сообщение:
TypeError: buffer is too small for requested array
, и если я изменяю его на следующее:
Losses = np.memmap('mmp/losses.dat', dtype=np.float64, mode='w+', shape=(5E6, 2000))
Я получаю следующее сообщение об ошибке:
fid.seek(bytes - 1, 0)
OSError: [Errno 22] Invalid argument
Как мне получить больше места на диске или, другими словами, использовать жесткий диск как «RAM»?Минимальный исполняемый пример:
import numpy as np
from numpy.lib.format import open_memmap
Losses = np.memmap('mmp/losses.dat', dtype=np.float64, mode='w+', shape=(5000000, 2000))