我正在使用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...
有人可以帮我解决这个错误吗?
答案 0 :(得分:30)
您必须使用ipython运行脚本:
$ ipython python/my_test_imagenet.py
然后get_ipython
已经在全球范围内。
注意:在普通shell from IPython import get_ipython
中通过python
导入它将无效,因为您确实需要ipython
运行。
答案 1 :(得分:8)
如果您打算运行转换后的.py文件笔记本,那么您应该只注释get_ipython()
个语句。 matlibplot输出无法在控制台中显示,因此您可能需要做一些工作。理想情况下,iPython不应该生成这些语句。您可以使用以下显示图表:
plt.show(block=True)
答案 2 :(得分:2)
get_ipython
仅在导入IPython模块(如果您运行ipython shell(或Jupyter笔记本)时隐式发生)的情况下可用。
否则,导入将失败,但是您仍然可以使用以下方式明确导入:
from IPython import get_ipython