2015-09-12 4 views
9

Je travaille sur le framework Caffe et utilise l'interface PyCaffe. J'utilise un script Python obtenu à partir de la conversion du IPython Notebook 00-classification.ipynb pour tester la classification par un modèle formé pour ImageNet. Mais tout get_ipython() déclaration dans le script donne l'erreur suivante:NameError: le nom 'get_ipython' n'est pas défini

$ python python/my_test_imagenet.py 
Traceback (most recent call last): 
    File "python/my_test_imagenet.py", line 23, in <module> 
    get_ipython().magic(u'matplotlib inline') 

Dans le script, j'importe ce qui suit:

import numpy as np 
import matplotlib.pyplot as plt 

get_ipython().magic(u'matplotlib inline') 

# Make sure that caffe is on the python path: 
caffe_root = '/path/to/caffe/' 
import sys 
sys.path.insert(0, caffe_root + 'python') 

import caffe 

plt.rcParams['figure.figsize'] = (10, 10) 
plt.rcParams['image.interpolation'] = 'nearest' 
plt.rcParams['image.cmap'] = 'gray' 

import os 

# ... Rest of the code... 

Quelqu'un peut-il s'il vous plaît me aider à résoudre ce Erreur?

+0

où avez-vous importé cela? –

+0

J'ai importé ceci dans le script python où j'essaie d'utiliser l'instruction 'get_ipython()'. –

Répondre

16

vous devez exécuter votre script avec ipython:

$ ipython python/my_test_imagenet.py 

Alors get_ipython sera déjà dans le contexte mondial.

Remarque: L'importation via from IPython import get_ipython dans le shell ordinaire python ne fonctionnera pas car vous avez vraiment besoin de ipython en cours d'exécution.

+1

J'ai essayé le ci-dessus mais il donne l'erreur suivante: "UsageError: Invalid GUI demande u'inline", valides sont: pyglet, osx, qt5, qt, glut, gtk, gtk3, tk, wx ". –

+3

@AdarshChauhan utilise 'matplotlib auto' au lieu de 'matplotlib inline'. –

+0

@beezz Comment puis-je tester (dans un script) si mon script a été lancé par 'ipython' au lieu de' python'? – SebMa

3

Si votre intention est d'exécuter le cahier converti .py de dossier alors vous devriez juste commenter les déclarations get_ipython(). La sortie de matlibplot ne peut pas être montrée à l'intérieur de la console, donc vous auriez du travail à faire. Idéalement, iPython n'aurait pas dû générer ces instructions. Vous pouvez utiliser le suivant pour montrer les parcelles:

plt.show(block=True)