web-dev-qa-db-fra.com

NameError: le nom 'get_ipython' n'est pas défini

Je travaille sur le framework Caffe et utilise l'interface PyCaffe. J'utilise un script Python obtenu de la conversion du bloc-notes IPython Notebook -classification.ipynb pour tester la classification à l'aide d'un modèle expérimenté pour ImageNet. Mais get_ipython () L'instruction dans le script donne l'erreur suivante:

$ 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 m'aider s'il vous plaît à résoudre cette erreur?

28
Adarsh Chauhan

Vous devez exécuter votre script avec ipython:

$ ipython python/my_test_imagenet.py

Ensuite get_ipython sera déjà dans un contexte global.

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

35
beezz

Si votre intention est d'exécuter le bloc-notes converti .py, il vous suffit de commenter les instructions get_ipython(). La sortie matlibplot ne peut pas être affichée à l'intérieur de la console, vous aurez donc du travail à faire. Idéalement, iPython n'aurait pas dû générer ces instructions. Vous pouvez utiliser ce qui suit pour afficher les parcelles:

plt.show(block=True)
12
Shital Shah