56

我正在研究 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...

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

4

3 回答 3

74

你必须用 ipython 运行你的脚本:

$ ipython python/my_test_imagenet.py

然后get_ipython将已经在全球范围内。

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

于 2015-09-12T13:17:25.860 回答
23

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

plt.show(block=True)
于 2017-12-30T09:27:33.323 回答
6

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

如果没有,导入将失败,但您仍然可以使用以下命令显式导入它:

from IPython import get_ipython
于 2020-05-15T16:08:32.223 回答