NameError: name 'get_ipython' is not defined

NameError: name 'get_ipython' is not defined

我正在研究 Caffe 框架并使用 PyCaffe 界面。我正在使用从转换 IPython Notebook 00-classification.ipynb 获得的 Python 脚本来测试 ImageNet 训练模型的分类。但是脚本中的任何 get_ipython() 语句都会出现以下错误:

$ 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')

在脚本中,我导入了以下内容:

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...

有人可以帮我解决这个错误吗?

您必须 运行 您的脚本 ipython:

$ ipython python/my_test_imagenet.py

然后 get_ipython 将已经在全局上下文中。

注意:在普通shell python中通过from IPython import get_ipython导入是行不通的,因为你确实需要ipython 运行ning.

如果您打算 运行 转换 .py 文件笔记本,那么您应该只注释掉 get_ipython() 语句。 matlibplot 输出无法显示在控制台内,因此您需要做一些工作。理想情况下,iPython 不应该生成这些语句。您可以使用以下内容来显示绘图:

plt.show(block=True)

get_ipython 仅在导入 IPython 模块时可用,如果您 运行 ipython shell (或 Jupyter notebook)会隐式发生。

否则,导入将失败,但您仍然可以通过以下方式显式导入:

from IPython import get_ipython