2016-03-07 3 views
0

Je suis en train de charger deux fichiers mappés en mémoire,charge plusieurs fichiers avec mémoire mappée numpy

temp = numpy.load(currentDirectory + "\\tmp\\temperature.npy", mmap_mode='r') 
salinity = numpy.load(currentDirectory + "\\tmp\\salinity.npy", mmap_mode='r') 

mais Python jette l'erreur suivante:

IOError: Failed to interpret file 'C:\\my\\file\\path\\..\\tmp\\salinity.npy' as a pickle 

Quand je charge soit par lui-même, il fonctionne très bien.

Les fichiers qui sont assez grands (~ 500 Mo), mais sinon je ne pense pas qu'ils sont remarquables.

Quel pourrait être le problème ici?

+0

Est-ce que la même chose se produit avec des fichiers plus petits? Cela peut être utile si vous affichez les 'shape' et' dtype' de ces fichiers (lorsqu'ils sont chargés individuellement). – hpaulj

+0

Salut @hpaulj, forme = '(1, 102, 720, 1440)' et type = 'float32'. Je vais donner quelques petits fichiers un essai et voir ce qui se passe ... – rowanwins

+0

Salut @ hpaulj il semble bien fonctionner quand j'ai deux petits fichiers ... Je me demande si Im manque de mémoire pour interpréter le fichier? – rowanwins

Répondre

0

Cela fonctionne pour moi. Les deux fichiers ont une taille supérieure à 5 Go.

X = np.load(os.path.join(path, '_file1.npy'), mmap_mode='r') 
Y = np.load(os.path.join(path, '_file2.npy'), mmap_mode='r') 

Quel système d'exploitation utilisez-vous? Le problème n'est pas avec la taille des fichiers "npy" mais le problème est avec "\" dans path. changez votre chemin en tant que:

path = '/media/gtx1060/DATA/Datasets'