Jupyter pour ordinateur Portable (uniquement) Erreur de Mémoire, le même code exécuté dans un classique .py et de travaux
J'ai une mission pour un Apprentissage en Profondeur de la classe, et ils fournissent un Jupyter cahier, comme un code de base, la chose est que, après l'exécution de l'importation de données et de les remodeler, jupyter ordinateur portable, grâce à une "Erreur de Mémoire", d'après certaines analyses, y essayé de compiler le même code dans des conditions normales .py fichier, et tout fonctionne bien.
Le truc c'est que je suis tenu (de préférence) pour utiliser le Jupyter notebook en tant que base pour le développement, car il est plus interactif pour le genre de tâche.
<ipython-input-2-846f80a40ce2> in <module>()
2 # Load the raw CIFAR-10 data
3 cifar10_dir = 'datasets\\'
----> 4 X, y = load_CIFAR10(cifar10_dir)
C:\path\data_utils.pyc in load_CIFAR10(ROOT)
18 f = os.path.join(ROOT, 'cifar10_train.p')
19 print('Path: ' + f );
---> 20 Xtr, Ytr = load_CIFAR_batch(f)
21 return Xtr, Ytr
22
C:\path\data_utils.pyc in load_CIFAR_batch(filename)
10 X = np.array(datadict['data'])
11 Y = np.array(datadict['labels'])
---> 12 X = X.reshape(-1, 3, 32, 32).transpose(0,2,3,1).astype("float")
13 return X, Y
14
MemoryError:
L'erreur se produit à la ligne 12, je sais, c'est un mémoire de consommer de l'affectation, mais cela ne signifie pas que 4 GO de RAM habitude suffire, et qui a été confirmé lorsque le code s'exécute sans problème à l'extérieur de Jupyter.
Ma Conjecture est qu'il a quelque chose à voir avec la limite de la mémoire, soit par Jupyter ou par Chrome, mais je ne suis pas sûr et aussi ne sais pas comment le résoudre.
Par la route:
- J'ai un Windows 10 pour ordinateur portable avec 4 go de RAM
- et Chrome Version 57.0.2987.133 (64-bit)
Ce type de noyau êtes-vous en cours d'exécution sur votre ordinateur portable?
Ouais, j'ai Déjà vérifier le chemin d'accès est correct et les données sont traitées de la même façon sur le .py fichier, donc c'est pas ça. J'ai utilisé "nbconvert --script" pour obtenir la copie sur l'ordinateur portable .py format, il est créé dans le même dossier et quand je lance celui-là, pas de problème.
Python 2.7, mais encore une fois, l' .py est également en Python 2.7
OriginalL'auteur Daniel Ordoñez | 2017-05-09
Vous devez vous connecter pour publier un commentaire.
Apparemment ce qui se passe lors de l'installation de python n'est pas le meilleur.
Comme une question de fait, avant de résoudre le problème, j'avais installé sur windows manuellement python 2.7 et les paquets dont j'avais besoin, après déconner presque deux jours à essayer de comprendre quel était le problème, j'ai réinstallé le tout avec Conda et le problème a été résolu.
Je suppose que Conda est l'installation d'une meilleure gestion de la mémoire de paquets et c'est la raison principale.
Ce qu'est un utile commentaire de mon ami, que voulez-vous de moi? non tu publier la solution parce que je ne suis pas sûr à 100% pourquoi cela a fonctionné?
Je vous suggère de ne pas mettre de "deviner" comme une réponse, ni accepté. Il peut résoudre votre problème, mais inutile pour les autres.
OriginalL'auteur Daniel Ordoñez
Essayez d'exécuter avec des privilèges d'Administrateur. A travaillé pour moi.
OriginalL'auteur Andriy Stolyar
Chose de similaire s'est passé avec moi pendant le chargement .npy fichier. Libérer de la mémoire RAM a résolu le problème. Il n'a pas assez de mémoire pour charger le fichier dans une variable. En fait, firefox et chrome a été en cours d'exécution sur mon système et de fermeture de firefox résolu le problème.
Commandes Utiles:
free -h
Note de précaution: avant d'interpréter cette commande sur votre propre. Son fortement recommandé de passer par cette page: https://www.linuxatemyram.com/ .
OriginalL'auteur Delsilon
Je ne suis qu'un an et 2 mois de retard à cette question. La technique de la réponse à pourquoi est vraiment bien expliqué ici: https://superuser.com/questions/372881/is-there-a-technical-reason-why-32-bit-windows-is-limited-to-4gb-of-ram
Il implique aussi pourquoi la conda solution fonctionne.
Mais la paresse de l'ingénieur de la non-modification de la solution de contournement, de fermer les onglets Chrome n'est pas absolument nécessaire et redémarrez votre noyau, de sorte qu'il recommence.
OriginalL'auteur Lefty G Balogh