2015-09-12 44 views
9

Tôi đang làm việc trên khuôn khổ Caffein và sử dụng giao diện PyCaffe. Tôi đang sử dụng một tập lệnh Python thu được từ việc chuyển đổi Máy tính xách tay IPython 00-phân loại.ipynb để kiểm tra phân loại theo mô hình được đào tạo cho ImageNet. Nhưng bất kỳ get_ipython() tuyên bố trong kịch bản được đưa ra các lỗi sau:NameError: tên 'get_ipython' không được định nghĩa

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

Trong kịch bản, tôi đang nhập khẩu như sau:

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

Ai đó có thể xin hãy giúp tôi giải quyết này lỗi?

+0

bạn đã nhập nội dung này ở đâu? –

+0

Tôi đã nhập mã này vào tập lệnh python nơi tôi đang cố gắng sử dụng câu lệnh 'get_ipython()'. –

Trả lời

16

Bạn phải chạy script của bạn với ipython:

$ ipython python/my_test_imagenet.py 

Sau đó get_ipython sẽ đã có trong bối cảnh toàn cầu.

Lưu ý: Nhập mã thông qua from IPython import get_ipython trong vỏ thông thường python sẽ không hoạt động khi bạn thực sự cần ipython đang chạy.

+1

Tôi đã thử ở trên nhưng nó cung cấp cho các lỗi sau: "UsageError: yêu cầu GUI không hợp lệ u'inline ', hợp lệ là: pyglet, osx, qt5, qt, glut, gtk, gtk3, tk, wx". –

+3

@AdarshChauhan sử dụng 'matplotlib auto' thay vì 'matplotlib inline'. –

+0

@beezz Làm thế nào tôi có thể kiểm tra (bên trong một tập lệnh) nếu scipt của tôi đã được khởi chạy bởi 'ipython' thay vì' python'? – SebMa

3

Nếu ý định của bạn là chạy tệp chuyển đổi tệp .py thì bạn chỉ cần nhận xét ra câu lệnh get_ipython(). Đầu ra matlibplot không thể được hiển thị bên trong giao diện điều khiển, do đó bạn sẽ có một số công việc để làm. Lý tưởng nhất, iPython không nên tạo ra các câu lệnh này. Bạn có thể sử dụng sau để hiển thị các ô:

plt.show(block=True) 
Các vấn đề liên quan